最近项目中遇到需要控制用户输入的内容的字节长度,借鉴了网上的一些资料。
js是使用Unicode编码的。而Unicode的实现有N种,其中用的最多的就是UTF-8和UTF-16。
UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码,可以表示Unicode标准中的任何字符,且其编码中的第一个字节仍与ASCII相容,使用一至四个字节为每个字符编码。
其编码规则如下:
- 字符代码在000000 – 00007F之间的,用一个字节编码;
- 000080 – 0007FF之间的字符用两个字节
- 000800 – 00D7FF 和 00E000 – 00FFFF之间的用三个字节,注: Unicode在范围 D800-DFFF中不存在任何字符
- 010000 – 10FFFF之间的用4个字节
String.prototype.getBytesLength = function()