JAVA web项目 HTTP请求乱码问题
web项目 HTTP请求接收时,为乱码
最近web项目集成短信接口,http请求发送,接收到的短信为乱码。用public static void main(String[] arg) {} 写了个demo,发起请求又是正常的。
研究了半天,发现http提交时,编码设置为utf-8,容器会默认使用iso-8859-1的方式再次编码,最后服务端解码时,使用utf-8解码出来就变成乱码了。
解决办法:发起请求时,对请求中的中文字符进行两次utf-8 编码:
String content = java.net.URLEncoder.encode(message.getContent(),“UTF-8”);
content = java.net.URLEncoder.encode(content ,“UTF-8”);