“HttpURLConnection输出中文乱”这个问题网络上有不少遇到,这里整理下项目片段代码,下面代码关于中文乱码有个重要地方,第一个下面代码标记“1.”:三个属性"Accept-Charset","Content-type", "Charset",网落上说要追加"utf-8"编码,在我们项目处理过程,问题不在这个三个属性,在于输出方法在下面标记“2.”,writeBytes()追加前面三个属性也乱码,wr.write(params.toString().getBytes("UTF-8"));是只在getBytes中追加"UTF-8"即可不会中文乱码,可以没有前面三个属性设置。
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();1.con.setRequestProperty("Accept-Charset", "utf-8");
con.setRequestProperty("Content-type", "application/x-www-form-urlencoded;charset=UTF-8");
con.setRequestProperty("Charset", "utf-8");
con.setRequestMethod("POST");
con.setRequestProperty("User-Agent", USER_AGENT);
con.setDoOutput(true);
DataOutputStream wr = new DataOutputStream(con.getOutputStream());2.wr.write(params.toString().getBytes("UTF-8"));//writeBytes()It's killed;
//wr.write(params.toString().getBytes("UTF-8"));wr.flush();
wr.close();
分别再java和android程序测验证:
java程序Console POST输出:
Android程序POST回发结果: