编码转化
try {
String _str = new String(str.getBytes("gb2312"),"utf-8" );
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
乱码转化和你的机子本身的编码。还是编译器的编码都有关,在解决了问题后好好找到问题的根本。这样以后解决就有把握了。
try {
String _str = new String(str.getBytes("gb2312"),"utf-8" );
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
乱码转化和你的机子本身的编码。还是编译器的编码都有关,在解决了问题后好好找到问题的根本。这样以后解决就有把握了。
因为内存中的字符串是UNICODE的编码,所以要还原,就要用str.getBytes()或者str.getBytes("UNICODE"),然后再将得到的字节数组(比如叫做bytes)按照GB2312构造成字符串,就是new String(bytes, "GB2312")。
字符串在内存中一律是UNICODE,而Reader使用的字符集,含义是通过这个字符集来“解码”得到的字节数据。