赞
踩
这个项目的中文乱码问题出现在调用第三方接口的时候,接口返回的数据带有中文。返回结果本地测试没问题,服务器(windows server 2008)上的中文则是乱码,但并不是全部乱码。我从结果上发现一个规律,如果中文字符串的长度是偶数,就不会有乱码;如果是奇数,则最后一个字是乱码(也有特殊情况,最后一个字和倒数第三个字是乱码的情况,但是基本都是长字符串)。下面是代码:
result.append(new String(ret.getBytes(), StandardCharsets.UTF_8));
之后我在启动类里加了以下语句:
System.out.println(Charset.defaultCharset().name());
发现本地环境打印的是UTF-8,服务器上打印的是GBK。我当时想造成部分乱码的原因是转换的时候丢数据了。但是不敢确认,也希望有人能解答一下,谢谢。
最后,在服务器启动项目(jar包)时,加上标题所述的参数,再调用接口之后,发现问题已然解决。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。