Http乱码问题解决
调用天气的一个API
在idea里面测试的时候是没有问题的,然后然后打包成可执行jar。再运行的时候就出现了乱码。
就是这样的。
第一次尝试:
一开始我以为是要把这个字符串的编码转换成URL编码
URLEncode.encode(str,"UTF-8");
但是事实发现好像还是不管用。。。。。(๑´ㅂ`๑)
第二次尝试:
我是打算这么解决的,就是是把传过来的字符串转成utf-8编码
new String(str.getBytes(),"UTF-8");
但是事情并没有这么简单,接下来就出现了这种问题。
一半是乱码的,一半是不乱码的。
第三次尝试:
看了大佬的写的blog。发现是要url创建连接的时候就确定编码。
创建输入流的时候也是要确定编码
这个时候问题就解决了
BufferedReader in = new BufferedReader(
new InputStreamReader(
connection.getInputStream(),"UTF-8"
)
);
到这里问题就解决了