utf-8 长度

作者:实现
链接:https://www.zhihu.com/question/30945431/answer/91316302
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

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<charsetNames.length;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("非法编码格式!"); } }

转载于:https://www.cnblogs.com/kakaisgood/p/8023067.html

你可能感兴趣的:(utf-8 长度)