日期:2014-05-17 浏览次数:21014 次
byte[] b1="中国".getBytes("GBK");//[-42, -48, -71, -6]
byte[] b2="中国".getBytes("UTF-8");//[-28, -72, -83, -27, -101, -67]
byte[] b3="中国".getBytes("UTF-16");//[-2, -1, 78, 45, 86, -3]
byte[] b4="ab".getBytes("GBK");//[97, 98]
byte[] b5="ab".getBytes("UTF-8");//[97, 98]
byte[] b6="ab".getBytes("UTF-16");//[-2, -1, 0, 97, 0, 98]
System.out.println(new String(b6,"GBK"));// a b
System.out.println(new String(b6,"UTF-16"));//ab
------解决方案--------------------
public static boolean containsZH(byte[] arr,String charset)throws Exception{
int byteLen = arr.length;
String str = new String(arr,charset);
int strLen = str.length();
return (byteLen != strLen);
}
public static void main(String[] args) throws Exception{
System.out.println(containsZH("中国".getBytes("GBK"),"GBK"));
System.out.println(containsZH("aa".getBytes("GBK"),"GBK"));
System.out.println(containsZH("中国".getBytes("UTF-8"),"UTF-8"));
System.out.println(containsZH("aa".getBytes("UTF-8"),"UTF-8"));
System.out.println(containsZH("aa中国".getBytes("UTF-8"),"UTF-8"));
}
------解决方案--------------------