public class Test { /**
* @param args
*/
public static void main(String[] args) {
try {
String aaa = "部门";
System.out.println(aaa);
System.out.println(new String(new String(aaa.getBytes("GBK"), "utf-8").getBytes("utf-8"), "GBK"));
} catch (Exception ex) {
ex.printStackTrace();
}
}}打印结果是:部门
锟斤拷锟斤拷
怎么解决??
* @param args
*/
public static void main(String[] args) {
try {
String aaa = "部门";
System.out.println(aaa);
System.out.println(new String(new String(aaa.getBytes("GBK"), "utf-8").getBytes("utf-8"), "GBK"));
} catch (Exception ex) {
ex.printStackTrace();
}
}}打印结果是:部门
锟斤拷锟斤拷
怎么解决??
Constructs a new String by decoding the specified array of bytes using the specified charset.
是说用charsetName指定的编码来解码bytes字节数组,而按你的aaa.getBytes("GBK")获得GBK编码,然后你想用utf-8来解码GBK的编码,这样不乱码吗?
而是如何解码
也就是按照1#所说的那样的
此处的new String已经是一个用utf-8方式去解码GBK的字符串了
已经是乱码了
但是不能说,转了一次再反转就能转回来的。
要求解码不能破坏解码前的格式才能保证转来转去的没有问题。
而是如何解码
也就是按照1#所说的那样的
此处的new String已经是一个用utf-8方式去解码GBK的字符串了
已经是乱码了
但是不能说,转了一次再反转就能转回来的。
要求解码不能破坏解码前的格式才能保证转来转去的没有问题。