SVG文件转图片乱码

ipromise_u 2013-10-15 11:30:55

public static void convertSvgFile2Png(File svg, File png)
throws IOException, TranscoderException {
InputStream in = new FileInputStream(svg);
InputStreamReader is = new InputStreamReader(in);
OutputStream out = new FileOutputStream(png);
FileOutputStream fos = new FileOutputStream(png);
// OutputStreamWriter out = new OutputStreamWriter(fos, "UTF-8");
Transcoder transcoder = new PNGTranscoder();
TranscoderInput input = new TranscoderInput(is);
TranscoderOutput output = new TranscoderOutput(out);
transcoder.transcode(input, output);
in.close();
out.flush();
out.close();
}

环境是这样的,本来我本地的是GBK,我全用的GBK,转出来没问题,
但现在问题的服务器上是UTF-8的环境,所以我把InputStream 改为了UTF-8
本来想把OutputStream也改为Utf-8,但是TranscoderOutput 他不接受OutputStreamWriter 类型,
求大家帮忙看看,这样的问题怎么解决啊,TranscoderOutput 这个也没看到设置编码的东西,
两个文件都是设置的UTF-8,没有乱码.


...全文
1032 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
ipromise_u 2015-11-17
  • 打赏
  • 举报
回复
不好意思. 这个很久了. 以前记得没错的话是 svg js 里面的一个version 写的有问题.
machine_20 2015-11-17
  • 打赏
  • 举报
回复
请问楼主,你这个问题是怎么解决的?
chimis 2015-06-11
  • 打赏
  • 举报
回复
我转出来的图片只有SVG图的一部分是为什么了?求解决
tyqtxl 2014-01-13
  • 打赏
  • 举报
回复
畜生 怎么解决的 贴上来学习一下啊
SKYBUSY2000 2013-11-20
  • 打赏
  • 举报
回复
引用 6 楼 jmy108 的回复:
问题已经解决了,顺便问个问题, String s = "{1}+{27}-5*6/{3}{3e}"; 用正则怎么取{}中间的所有数据,
怎么解决的 。。。
ipromise_u 2013-10-15
  • 打赏
  • 举报
回复
大家都去吃饭了?
ipromise_u 2013-10-15
  • 打赏
  • 举报
回复
引用 7 楼 zqfddqr 的回复:
[quote=引用 6 楼 jmy108 的回复:] 问题已经解决了,顺便问个问题, String s = "{1}+{27}-5*6/{3}{3e}"; 用正则怎么取{}中间的所有数据,
什么叫所有 可以一个一个的取的 建议你再开一个贴 正则的贴很多人回的[/quote] 我需要的是那个正则啊, 取出来肯定是一个一个了
zqfddqr 2013-10-15
  • 打赏
  • 举报
回复
引用 6 楼 jmy108 的回复:
问题已经解决了,顺便问个问题, String s = "{1}+{27}-5*6/{3}{3e}"; 用正则怎么取{}中间的所有数据,
什么叫所有 可以一个一个的取的 建议你再开一个贴 正则的贴很多人回的
ipromise_u 2013-10-15
  • 打赏
  • 举报
回复
问题已经解决了,顺便问个问题, String s = "{1}+{27}-5*6/{3}{3e}"; 用正则怎么取{}中间的所有数据,
ipromise_u 2013-10-15
  • 打赏
  • 举报
回复
引用 4 楼 defonds 的回复:
[quote=引用 3 楼 jmy108 的回复:] [quote=引用 2 楼 defonds 的回复:] TranscoderOutput 接受 OutputStreamWriter 类型的。
他接受了会报错,我上面有说啊[/quote]什么错[/quote]

org.apache.batik.transcoder.TranscoderException: null
Enclosed Exception:
Invalid output. PNG transcoder only supports a byte stream output
	at org.apache.batik.transcoder.image.ImageTranscoder.transcode(Unknown Source)
	at org.apache.batik.transcoder.XMLAbstractTranscoder.transcode(Unknown Source)
	at org.apache.batik.transcoder.SVGAbstractTranscoder.transcode(Unknown Source)
	at com.xd.iis.sp.yuqing.action.RuceneFindAction.convertSvgFile2Png(RuceneFindAction.java:2071)
	at com.xd.iis.sp.yuqing.action.RuceneFindAction.goChartImg(RuceneFindAction.java:2027)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:404)
	at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:267)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:229)
	at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:221)
	at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
	at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
	at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
	at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
	at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:150)
	at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:48)
	at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
	at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
	at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
	at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
	at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:123)
	at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
	at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
	at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
	at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:167)
	at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
	at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
	at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
	at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
	at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:105)
	at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
	at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
	at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
	at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:83)
	at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
	at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
	at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
	at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:207)
	at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
	at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
	at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
	at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:74)
	at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
	at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
	at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
	at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:127)
	at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
	at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
	at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
	at org.apache.struts2.interceptor.ProfilingActivationInterceptor.intercept(ProfilingActivationInterceptor.java:107)
	at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
	at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
	at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
	at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:206)
	at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
	at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
	at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
	at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:115)
	at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
	at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
	at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
	at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:143)
	at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
	at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
	at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
	at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:121)
	at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
	at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
	at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
Defonds 2013-10-15
  • 打赏
  • 举报
回复
引用 3 楼 jmy108 的回复:
[quote=引用 2 楼 defonds 的回复:] TranscoderOutput 接受 OutputStreamWriter 类型的。
他接受了会报错,我上面有说啊[/quote]什么错
ipromise_u 2013-10-15
  • 打赏
  • 举报
回复
引用 2 楼 defonds 的回复:
TranscoderOutput 接受 OutputStreamWriter 类型的。
他接受了会报错,我上面有说啊
Defonds 2013-10-15
  • 打赏
  • 举报
回复
TranscoderOutput 接受 OutputStreamWriter 类型的。

67,546

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧