大家好,欢迎来到IT知识分享网。
android默认socket通信编码是utf8,这时为了支持多国家。
国内预装的windows操作系统编码是GB2312,一般在PC机编写的应用程序并且运行在该PC机上如果没有特意指定编码都是GB2312。
不同的编码如果传输的是英文字母等不会出现乱码,如果是汉字就是乱码
utf8中汉字的表示方法为3个字节
例如汉字“啊”,GB2312编码为 B0 A1
utf8编码为 E5 95 8A
一般来讲,一个汉字的编码可以这样获取
String s = "啊";
byte[] b = s.getBytes("GB2312");
这样b数组中存的就是汉字”啊“的gb2312编码,即
E5 95 8A。
实际通信中,可以利用BufferedReader实现自动转码
Socket mSocketClient = new Socket();
BufferedReader mBufferedReaderServer = null;
BufferedReader mBufferedReaderClient = null;
mBufferedReaderClient = new BufferedReader(new InputStreamReader(mSocketClient.getInputStream(),"GB2312"));
mPrintWriterClient = new PrintWriter(new BufferedWriter(new OutputStreamWriter(mSocketClient.getOutputStream(),"gb2312")), true);
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/22593.html