- UTF-8是一种变长的字符编码, 它可以用1-4个字节来表示一个字符, 一般来说, 英文字符和数字需要1个字节, 中文标点需要2个, 少数汉字需要3个, 大多数汉字需要4个.
- 对于单字节的符号,字节的第一位设为0,后面7位为这个符号的Unicode码。因此对于英语字母,UTF-8编码和ASCII码是相同的。
- 对于n字节的符号(n>1),第一个字节的前n位都设为1,第n+1位设为0,后面字节的前两位一律设为10。剩下的没有提及的二进制位,全部为这个符号的Unicode码。
在lua中, 字符串内容包含汉字时, 需要从字符串中提取每个字符, 就需要根据UTF-8编码进行特殊处理
1 | function TakeChar(str) |