当前位置:编程学习 > JAVA >>

中文乱码.

已经用了

String recvStr = new String(receiveStr.getBytes("iso8859-1"),"gbk");

结果是

<?xml version="1.0" encoding="utf-8"?><root value =""><rtn cid ="05100000"><rcd>00</rcd><rms>?????</rms></rtn></root>

中文结果显示是????, 怎么解决啊? --------------------编程问答-------------------- 乱码的解决不是这么简单的,要看整个项目的配置。参考下:http://blog.csdn.net/wula0010/article/details/3942321 --------------------编程问答-------------------- 我的是socket数据接收. 
接收到的结果转换后是
<?xml version="1.0" encoding="utf-8"?><root value =""><rtn cid ="05100000"><rcd>00</rcd><rms>?????</rms></rtn></root>
中文还是乱码 --------------------编程问答-------------------- 對方的編碼是什麽 --------------------编程问答-------------------- C写的Socket 服务。
需通过 Java写的客户端去获取数据,取得的数据中出现了以上中文乱码问题。

      这个答案对吗?无法解决?

 java是unicode编码。一个字符是2位,十六个字节,c在本地的话,他会用本地的默认字符集,也就是gb2312或者gbk编码,这个编码是浮动的,8个或者12个,2着字符不兼容呀,解决就不知道了,我一般都是在client和server都用java的 --------------------编程问答-------------------- 深入分析 Java 中的中文编码问题
一个汉字变成一个问号
例如,字符串“淘!我喜欢!”变成了“??????”编码过程如下图所示

 
将中文和中文符号经过不支持中文的 ISO-8859-1 编码后,所有字符变成了“?”,这是因为用 ISO-8859-1 进行编解码时遇到不在码值范围内的字符时统一用 3f 表示,这也就是通常所说的“黑洞”,所有 ISO-8859-1 不认识的字符都变成了“?”。
一个汉字变成两个问号
例如,字符串“淘!我喜欢!”变成了“????????????”编码过程如下图所示

 
这种情况比较复杂,中文经过多次编码,但是其中有一次编码或者解码不对仍然会出现中文字符变成“?”现象,出现这种情况要仔细查看中间的编码环节,找出出现编码错误的地方。 --------------------编程问答-------------------- IBM那文章说的很透彻,楼主具体问题具体分析一下就ok了 --------------------编程问答-------------------- socket服务端和客户端的编码方式要一致。。不然怎么转都是乱码。。
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,