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

2019-07-13 05:10发布

最近在搞一个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后,重启-运行-完美解析中文(到此搞定^^)。