“联通”解码错误问题分析:
原因:“联通”二进制编码形式正好符合了utf-8的编码形式,导致按照utf-8字符集进行解码,解码错误。
解决办法:在"联通"前边随便加入一个汉字,即可按照gbk字符集正确解码。
示例
import java.util.*;
class EncodeDemo2{
public static void main(String[] args)throws Exception{
String s="联通";
byte[] by=s.getBytes("gbk"); // 使用gbk字符集编码
for(byte b:by){
// "联通"二进制编码形式正好符合了utf-8的编码形式,导致按照utf-8字符集进行解码,解码错误。
// 解决办法:在"联通"前边随便加入一个汉字,即可按照gbk字符集正确解码。
System.out.println(Integer.toBinaryString(b&255));
}
}
}