utf-8编码英文字符所占字节数:1
utf-8编码中文字符所占字节数:3
utf-16编码英文字符所占字节数:4
utf-16编码中文字符所占字节数:4
UTF-16BE编码英文字符所占字节数:2
UTF-16BE编码中文字符所占字节数:2
UTF-16LE编码英文字符所占字节数:2
UTF-16LE编码中文字符所占字节数:2
UTF-32编码英文字符所占字节数:4
UTF-32编码中文字符所占字节数:4
UTF-32BE编码英文字符所占字节数:4
UTF-32BE编码中文字符所占字节数:4
UTF-32LE编码英文字符所占字节数:4
UTF-32LE编码中文字符所占字节数:4
unicode编码英文字符所占字节数:4
unicode编码中文字符所占字节数:4
GBK编码英文字符所占字节数:1
GBK编码中文字符所占字节数:2
GB2312编码英文字符所占字节数:1
GB2312编码中文字符所占字节数:2
GB18030编码英文字符所占字节数:1
GB18030编码中文字符所占字节数:2
ISO8859-1编码英文字符所占字节数:1
ISO8859-1编码中文字符所占字节数:1
BIG5编码英文字符所占字节数:1
BIG5编码中文字符所占字节数:2
ASCII编码英文字符所占字节数:1
ASCII编码中文字符所占字节数:1
纸上得来终觉浅,绝知此事要躬行!以上结果是我用下边Java代码生成的:
public static void main(String[] args){
String[] charsetNames={
"utf-8",
"utf-16",
"UTF-16BE",
"UTF-16LE",
"UTF-32",
"UTF-32BE",
"UTF-32LE",
"unicode",
"GBK",
"GB2312",
"GB18030",
"ISO8859-1",
"BIG5",
"ASCII"
};
for(int i=0;i
printByteLength(charsetNames[i]);
}
}
/*** String类的不带参数的getBytes()方法会以程序所运行平台的默认编码方式为准来进行转换,* 在不同环境下可能会有不同的结果,因此建议使用指定编码方式的getBytes(String charsetName)方法。*/
public static void printByteLength(String charsetName){
String a="a";//一个英文字符String b="啊";//一个中文字符try {
System.out.println(charsetName+"编码英文字符所占字节数:"+a.getBytes(charsetName).length);
System.out.println(charsetName+"编码中文字符所占字节数:"+b.getBytes(charsetName).length);
System.out.println();
} catch (UnsupportedEncodingException e) {
System.out.println("非法编码格式!");
}
}