java,关于Socket通信时的字符集编解码
如题,A与B进行Socket通信,B接收A传递过来的数据进行处理,A的默认字符集编码为UTF-8,B默认A的字符集编码为GBK,问:A要怎么处理数据才能保证B解析到的数据...
如题,A与B进行Socket通信,B接收A传递过来的数据进行处理,A的默认字符集编码为UTF-8,B默认A的字符集编码为GBK,问:A要怎么处理数据才能保证B解析到的数据不是乱码?A要怎么才能正确解析出B传送过来的数据?
展开
2个回答
展开全部
socket通信时,多数用到的输入输出流,在使用流的时候要注意字节流和字符流,如果有字符的话你用了字节流就会出现乱码。
下面也处理乱码
String str = 你接到的流
str = new String(str.getByte(), "utf-8") 或者
str = new String(str.getByte(iso-8859-1), "utf-8")
下面也处理乱码
String str = 你接到的流
str = new String(str.getByte(), "utf-8") 或者
str = new String(str.getByte(iso-8859-1), "utf-8")
追问
能不能具体点,就上面的题目讲讲具体怎么怎么解决问题,解决的的语句我基本知道,就是不知道这时候是转UTF-8,GBK还是其他什么的?
追答
Socket conn=server.accept();
DataInputStream in=new DataInputStream(conn.getInputStream());
String str=in.readUTF();
//上面这些你可以换,因为最终你得到的是流,在从流中对数据
str = new String(str.getByte(), "utf-8")
System.out.print(str)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询