问题解决了,但是新的问题有出来了,调用的接口方法的返回值,中文部分显示成乱码了,我去
两者不能直接转换。要过度一下。比如先转为unicode或者转为字节数组。
百度搜索到的一个解释,希望对你有用! 首先要看你系统本来默认是什么编码方式的了这很重要。 在.java中声明的String变量的字符编码,是与当前文本编辑器使用的字符编码一致 例如,在MyEclipse中,我设置的默认编码为GBK 系统数据依照gbk的编码方式。使用str.getBytes("gbk")把数据还原(这点很重要), 然后利用new String(str.getBytes("gbk"), "utf-8")把数据从gb2312转换成utf-8 所以要清楚知道str.getBytes("gbk")这里的str字符本来是不是gbk编码的很重要,如果它是iso8859-1呢,那就会出错了。也许你不小心弄混了。就会时对时错了。 注意: 在.java中声明的String变量的字符编码,是与当前文本编辑器使用的字符编码一致 例如,在MyEclipse中,我设置的默认编码为GBK 则字符就是gbk编码格式。
BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream("D:/testencode.txt"),"UTF-8")); String str = reader.readLine(); while(str !=null){ System.out.println(str); str = reader.readLine(); }
用com.apache.commons.io.IOUtils里的方法(下载地址:http://commons.apache.org/proper/commons-io/): String gbkString = IOUtils.toString(IOUtils.toInputStream(utf8String, "gb2312"));
23,409
社区成员
70,517
社区内容
加载中
试试用AI创作助手写篇文章吧