下面一段代码,将字符串在GBK与UTF-8之间进行两次转换,第一次生成乱码(UTF-8的字节码用GBK解析),第二次反推这个过程,应该会生成正确的字符串.
但是有些中文字却变成了'???'一类的乱码.只是其中的一些...
public class UTF8SimpleTry {
public static void main(String[] args) throws UnsupportedEncodingException {
String str = new String("可怜");
System.out.println(">>>>>"+str);
String str1 = new String(str.getBytes("UTF-8"),"GBK");
String str2 = new String(str1.getBytes("GBK"),"UTF-8");
System.out.println("====="+str2);
}
}
上面的代码会打印出:
>>>>>可怜
=====可???
但是如果str为"我我我我我"就不会有乱码...
我的问题是:这个乱码是如何产生的?
(请认真看完上面的描述再给答案,最好是能针对此问题,也不拒绝有意义的转贴...谢谢....)