
java ByteArrayOutputStream从压缩文件中读取到字节数组,转换成字符串后再转换成数组发现数据不一样了
javaByteArrayOutputStream从压缩文件中读取到字节数组,转换成字符串后再转换成数组发现数据不一样了;用的UTF-8编码StringsplitData...
java ByteArrayOutputStream从压缩文件中读取到字节数组,转换成字符串后再转换成数组发现数据不一样了;用的UTF-8编码
String splitData = new String(byteArray, "ISO8859-1");
String splitData2 = new String(byteArray, "UTF8");
byte[] bytes1 = splitData.getBytes("ISO8859-1");
byte[] bytes2 = splitData2.getBytes("UTF8");
System.out.println(bytes1.length+"-"+bytes2.length);
结果2个数组长度不一样 展开
String splitData = new String(byteArray, "ISO8859-1");
String splitData2 = new String(byteArray, "UTF8");
byte[] bytes1 = splitData.getBytes("ISO8859-1");
byte[] bytes2 = splitData2.getBytes("UTF8");
System.out.println(bytes1.length+"-"+bytes2.length);
结果2个数组长度不一样 展开
2014-08-06 · 知道合伙人数码行家
关注

展开全部
您好, 提问者:
ISO8859-1是占1个字节。
而UTF-8的汉字是占三个字节。
GBK的汉字的是占两个字节,当然不一样了。
//转换
new String(splitData.getBytes("ISO8859-1"),"UTF-8");
ISO8859-1是占1个字节。
而UTF-8的汉字是占三个字节。
GBK的汉字的是占两个字节,当然不一样了。
//转换
new String(splitData.getBytes("ISO8859-1"),"UTF-8");
追问
谢谢,我的字节数组先转换成字符串,字符串再用同样编码得到字节数组,不明白为什么不同的编码会有不同的结果
追答
因为不同国家所出的语言对应表。
最全的是accis,GBK有的中文字不是别,加强是UTF-8。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询