try{
String a = new String("书不是书".getBytes("GB2312"), "iso-8859-1");
String b = new String(a.getBytes("iso-8859-1"), "GB2312");
System.out.println("a = " + a);
System.out.println("b = " + b);
}catch(UnsupportedEncodingException e){
e.printStackTrace();
}这样就可以了。
String a = new String("书不是书".getBytes("GB2312"), "iso-8859-1");
String b = new String(a.getBytes("iso-8859-1"), "GB2312");
System.out.println("a = " + a);
System.out.println("b = " + b);
}catch(UnsupportedEncodingException e){
e.printStackTrace();
}这样就可以了。
然后再String b=a
就行了
这样倒是可以:
System.out.println("s = " + new String("书".getBytes(), "gb2312"));
把它用String a=new String("书".getBytes("UTF-8"),"ISO8859-1")转换
然后再String b=new String(a.getBytes("ISO8859-1"),"UTF-8")
这样可以
然而
把它用String a=new String("书".getBytes("UTF-8"),"GBK")转换
然后再String b=new String(a.getBytes("GBK"),"UTF-8")
不行
解析gbk'\u00a6'没有相应的UTF-8编码
我的页面编码是UTF-8,在FILTER中进行了编码转换,到了页面中利用FormFile.getFileName()得到上传文件的文件名,进行new String(filename.getBytes("GBK"),"UTF-8")进行转换文件名然后保存,一个中文字符总是出错,奇数个老是出错,偶数个字符几乎没问题,郁闷ing