Java中使用网络请求时的乱码处理

在Java应用开发中,网络交互式是必备的,在下面,整理了一些自己在开发中遇到的乱码问题以及解决办法,这里使用HttpConnection 作为演示:

Java中使用网络请求时的乱码处理

方法一: 设置统一的编码格式

设置统一的编码格式,常用的有 utf-8,gbk

方法二: 在中文中使用统一的编码格式化

将中文使用统一的编码格式进行转换

1
String strencoding = new String(str.getBytes("ISO-8859-1","utf-8"));

方法三: 编码与解码

编码使用:

1
URLEncoder.encode(“中文”,"utf-8")

解码时使用:

1
URLDecoder.decode("中文","utf-8")

需要注意的是: 解码与编码需要使用统一的编码。

方法四: 手动URLEncode 编码

如果前三步骤,仍然没有解决编码问题,可以尝试手动URLEncode编码,
例如:

1
http://api.map.baidu.com/telematics/v3/local?keyWord=测试中文

此时的keyword中的值就是中文,可以将上述链接复制到浏览器上,先别急着敲回车,您就可以在浏览器的地址栏上面发现,”测试中文” 中文已经转换为URLEncode编码,如下:

1
http://api.map.baidu.com/telematics/v3/local?keyWord=%E6%B5%8B%E8%AF%95%E4%B8%AD%E6%96%87

其中 %E6%B5%8B%E8%AF%95%E4%B8%AD%E6%96%87 就是 “测试中文”转换后的编码.

小结

以上就是在网络请求中,乱码处理的几种方法。其实归根结底,解决乱码最主要的就是统一编码!