任何一个编码用其他字符集解码后的字符长度都会长
可以使用utf-8编码和gb2312分别解码,如果前者大于后者就是gb2312编码,否则就是utf-8编码
urlencode | urldecode | length |
---|---|---|
utf-8 | gb2312 | 2 |
utf-8 | utf-8 | 1 |
gb2312 | gb2312 | 1 |
gb2312 | utf-8 | 2 |
public static boolean isUTF8(String encodeStr) throws Exception{
long startTime=System.nanoTime(); //获取开始时间
String gb2312Str = URLDecoder.decode(encodeStr,"gb2312");
String utf8Str = URLDecoder.decode(encodeStr,"utf-8");
boolean result = gb2312Str.length() >= utf8Str.length();
long endTime=System.nanoTime(); //获取结束时间
System.out.println(">> "+(endTime-startTime)*1.0/1000000+"ms");
return result;
}