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回发结果: