utf-8以三个字节存储中文
gbk以二个字节存储中文
/**
* 字节(UTF-8)长度计算
*
* @param s
* 所需计算字节
* @return 字节长度
* @throws UnsupportedEncodingException
* 不支持编码异常
*/
public static int getUTF8BytesLength(String s) throws UnsupportedEncodingException {
return s.getBytes("utf-8").length;
}
/**
* 字节(GB2312)长度计算
*
* @param s
* 所需计算字节
* @return 字节长度
* @throws UnsupportedEncodingException
* 不支持编码异常
*/
public static int getGB2312BytesLength(String s) throws UnsupportedEncodingException {
return s.getBytes("gb2312").length;
}
public static void main(String[] args) {
String str = "123456测试";
try {
System.out.println(getUTF8BytesLength(str));//12
System.out.println(getGB2312BytesLength(str));//10
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}