dom4j处理xml在linux环境下中文乱码

来源:互联网 发布:php导出excel表格乱码 编辑:程序博客网 时间:2024/06/05 10:28

最近在搞一个webservice 的soap接口数据同步,接口提供方就是个鸟人,两个接口来来回回写了2个月才调通,我也真是服了
———**——–
好了吐槽到此结束,下面说说乱码的问题

dom4j 解析xml 就是一个把字符串、文件、输入流转换成文本(Document )再处理的过程;下面附上代码

InputStream in = new ByteArrayInputStream(fyxx.getBytes());        SAXReader saxReader = new SAXReader();        Document doc = saxReader.read(new BufferedReader(new InputStreamReader(in,"UTF-8")));//此处编码转换是关键        in.close();

这段代码在windows下运行没有问题;但是部署到linux上的时候中文居然解析成乱码存到数据库了(心里有点激动,有码可调^^)。

查询发现linux系统的默认编码是zh_CN.GB18030,不是UTF-8编码不一致,我就把编码换一下

Document doc = saxReader.read(new BufferedReader(new InputStreamReader(in,"zh_CN.GB18030")));

打包-部署-重新运行;到这直接gameover抛异常了。
本地改编码行不通,那就换服务器的,我就将服务器编码换成zh_CN.UTF-8(如何换服务器编码我就不说了)。
注意这时候编码转换还是

Document doc = saxReader.read(new BufferedReader(new InputStreamReader(in,"UTF-8")));

然后打包-部署-启动-运行-还是还是乱码(jiji)。
。。。(凌乱了3个小时候,终于发现问题了,改linux服务器编码后需要重新登录(ps不是重启服务就可以的);)重新登录xShell后,重启-运行-完美解析中文(到此搞定^^)。

阅读全文
0 0