在android下出现乱码的问题(在网络中传输和获取数据时)
2015-08-13 09:25
531 查看
首先,android的编码采用的是国际化通用的UTF-8,这一点是不容质疑的;
其次呢,要你用的编译器是Eclipse,那么Eclipse编译器的默认编码是GBK; //要是你用的是AS那么第一次使用时也建议,把编译器的默认编码都改为UT8
android出现编码最常见的就是在获取和提交数据的时候出现编码的不一致//通常是用 POST,GET请求完成的web容器的默认编码是iso-8859-1,,这里对post和get就不再做过多的讲解了,具体可以产看博文的另一个文章有讲解.
----------------------------------------------------------**********************************************-------------------------------------------------------
*1.指定提交数据的路径,post的方式不需要组拼任何的参数
String path="http://192**********/web/LoginServlet";
URL url = new URL(path);
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
*2.指定请求的方式post
conn.setRequestMethod("POST");
*3.设置http协议请求头
conn.setRequestProperty();
-----------------------------------
>编码不统一,出现乱码问题//编译器默认是GBK码表
*URLEncoder.encode(qq,"utf-8") //解决中文编码输入的问题,输入时的,客户端
*new String(username.getBytes("iso-8859-1"),"utf-8");//解决获得的编码解析,在web容器默认是iso-8859-1编
//码,getBytes拿回他的二进制,再将二进制以utf-8的编码方式进行解析,服务器端
// 服务器端:getBytes("utf-8");
// 客户端 : baos.write(buffer,0,len);
String result = baos.toString("gb2312");
*gbk编码以utf-8的方式显示>出现菱形加问号 ��ӭ�����һ��������
*utf-8编码以GBK的方式显示> 鐧婚檰鎴愬姛鍟� 鍝堝搱鍝�
*一个悲剧>烤斤烤斤烤斤 //别人的码表被你以其他的方式打开,数据已经丢失了,有些二进制是空字符,也变成这样,所以
//只能重写
其次呢,要你用的编译器是Eclipse,那么Eclipse编译器的默认编码是GBK; //要是你用的是AS那么第一次使用时也建议,把编译器的默认编码都改为UT8
android出现编码最常见的就是在获取和提交数据的时候出现编码的不一致//通常是用 POST,GET请求完成的web容器的默认编码是iso-8859-1,,这里对post和get就不再做过多的讲解了,具体可以产看博文的另一个文章有讲解.
----------------------------------------------------------**********************************************-------------------------------------------------------
*1.指定提交数据的路径,post的方式不需要组拼任何的参数
String path="http://192**********/web/LoginServlet";
URL url = new URL(path);
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
*2.指定请求的方式post
conn.setRequestMethod("POST");
*3.设置http协议请求头
conn.setRequestProperty();
-----------------------------------
>编码不统一,出现乱码问题//编译器默认是GBK码表
*URLEncoder.encode(qq,"utf-8") //解决中文编码输入的问题,输入时的,客户端
*new String(username.getBytes("iso-8859-1"),"utf-8");//解决获得的编码解析,在web容器默认是iso-8859-1编
//码,getBytes拿回他的二进制,再将二进制以utf-8的编码方式进行解析,服务器端
// 服务器端:getBytes("utf-8");
// 客户端 : baos.write(buffer,0,len);
String result = baos.toString("gb2312");
*gbk编码以utf-8的方式显示>出现菱形加问号 ��ӭ�����һ��������
*utf-8编码以GBK的方式显示> 鐧婚檰鎴愬姛鍟� 鍝堝搱鍝�
*一个悲剧>烤斤烤斤烤斤 //别人的码表被你以其他的方式打开,数据已经丢失了,有些二进制是空字符,也变成这样,所以
//只能重写
相关文章推荐
- TCP/IP详解 卷I:协议 の链路层
- 实习第12天 多线程监控网络,解析XML(未完善完)
- Unity判断网络连接状况
- 几种计算机网络体系结构的对比分析
- HTTP协议(二)
- HTTP 错误 503.2 - Service Unavailable 正在超过 serverRuntime@appConcurrentRequestLimit 设置的值。
- 用http 中doGet 方法获取mysql 数据库数据的错误总结
- mac 系统通用快捷键(mac 下的应用多数会往这些标准看齐)(转:http://yang3wei.github.io/blog/2013/02/08/chen-ni-yu-mac-chen-ni-yu-xcode/)
- 计算机网络note
- HTTP协议(一)
- Android 通过网络打开自己的APP(scheme)
- HttpClient 图解说明
- HTTP协议具体解释
- python网络编程(6)
- python网络编程(5)
- TCP协议
- http报头参数详解
- CentOS系统网络配置的基本4种方式
- python网络编程(4)
- AT指令操作GPRS Modem实现网络传输