解决安卓客户端和服务器端的中文乱码的问题
(1)如果在服务器的内容显示中文在安卓客户端有乱码,则将服务器的中文的字符串改为
"字符串内容".getBytes("utf-8") utf-8的格式,服务器的字符串内容在客户端不会中文乱码了
if(username.equals("xl")&&pwd.equals("yy")){
response.getOutputStream().write("login成功".getBytes("utf-8"));
}else{
response.getOutputStream().write("login失败".getBytes("utf-8"));
}
或者在安卓客户端直接将需要显示的字符串内容改为以下格式
String str=newString(result,"gbk");//获取result里面的内容,改变编码为gbk,中文就可以在安卓客户端直接显示了
(2)服务器输入中文出现乱码,MyEclipse的编码是由外国人开发的,编码方式默认为ISO-8859-1,而微软开发的IE浏览器的编码方式为UTF-8,所以在页面中以UTF-8的方式提交到浏览器,然后在MyEclipse先用ISO-8859-1的编码获取到内容,然后再将它转换为utf-8的编码格式,就不会出现乱码了
NewString(username.getBytes(“iso-8859-1”),”utf-8”)
(3)安卓客户端输入中文在服务器乱码,改变Url地址栏的字符串编码,浏览器会将提交给服务器的数据自动进行编码,在Url地址栏中是中文,到了显示的界面中,就变成中文乱码了,所以需要在安卓提交给服务器的Url 地址进行编码,URLEncoder.encode(“”)默认编码为utf-8
在安卓客户端添加URLEncoder.encode()之后,客户端提交给服务器的中文没有出现乱码了
(4)客户端提交给服务器的字符串也要进行以上的编码
URLEncoder.encode(“字符串内容”,”编码格式”);