乱码,高手进

来源:百度知道 编辑:UC知道 时间:2024/07/01 02:00:22
public static void main(String args[]){
String s = "中文";
try {
byte[] b0 = s.getBytes("iso-8859-1");
for(int i=0;i<b0.length;i++){
System.out.println("iso-8859-1字节码值:" + b0[i]);
}

String s1 = new String(s.getBytes("iso-8859-1"),"utf-8");
byte[] b = s1.getBytes("UTF-8");
for(int i=0;i<b.length;i++){
System.out.println("UTF-8字节码值:" + b[i]);
}
System.out.println("s1:" + s1);
String s2 = new String(s1.getBytes("utf-8"),"iso-8859-1");
byte[] b2 = s2.getBytes("UTF-8");
for(int i=0;i<b2.length;i++){
System.out.println("utf-8字节码值:" + b2[i]);
}
System.out.println("s2:" + s2);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}

到s1那里是人家写的我不能动,问题是我按他的编码格式

http://hi.baidu.com/mailluzhou/blog/item/05373c585c9a92db9d820476.html
http://hi.baidu.com/mailluzhou/blog/item/3641a2d7c3b7b6d8a044df77.html
http://hi.baidu.com/mailluzhou/blog/item/20892c02823b850a4afb5177.html

你干嘛用iso-8859-1解码中文啊?
byte[] b0 = s.getBytes("iso-8859-1");
中文字符串本身就不是用这个方式编码的,你怎么解得出来呢?
String s1 = new String(s.getBytes("iso-8859-1"),"utf-8");
这句话的意思是先把s按iso-8859-1解码出来,再按utf-8编码。但是中文本身是GBK或者utf-8编码的。。。。。。

我觉得你好混乱啊!你说的测试过可以拿到中文字符指的是哪行代码之前测试的,先告诉我。
你是不是认为它的s.getBytes("iso-8859-1"),就是把中文编码转成iso-8859-1啊?,然后你想从iso-