首先把字符串拆分成单个字符
-- 拆分出单个字符
function stringToChars(str)
-- 主要用了Unicode(UTF-8)编码的原理分隔字符串
-- 简单来说就是每个字符的第一位定义了该字符占据了多少字节
-- UTF-8的编码:它是一种变长的编码方式
-- 对于单字节的符号,字节的第一位设为0,后面7位为这个符号的unicode码。因此对于英语字母,UTF-8编码和ASCII码是相同的。
-- 对于n字节的符号(n>1),第一个字节的前n位都设为1,第n+1位设为0,后面字节的前两位一律设为10。
-- 剩下的没有提及的二进制位,全部为这个符号的unicode码。
local list = {}
local len = string.len(str)
local i = 1
while i <= len do
local c = string.byte(str, i)
local shift = 1
if c > 0 and c <= 127 then
shift = 1
elseif (c >= 192 and c <= 223) then
shift = 2
elseif (c >= 224 and c <= 239) then
shift = 3