有趣的微信编辑框
☕趁着被宿舍大蚊子吸血的时间发现微信这个细节的bug,用ASCII编码英文字符占一个字节,中文字符占两个,UTF-8编码中文字符占三个,Unicode编码中英文字符均占两个字节。
微信签名编辑框在显示0可用位置时可能并没有完全占满,你仍然可以输入一个英文字符。所以内容长度限制是精确到字节的。
那么微信对编辑框里的字数判断是怎么实现的呢?🤔
☕趁着被宿舍大蚊子吸血的时间发现微信这个细节的bug,用ASCII编码英文字符占一个字节,中文字符占两个,UTF-8编码中文字符占三个,Unicode编码中英文字符均占两个字节。
微信签名编辑框在显示0可用位置时可能并没有完全占满,你仍然可以输入一个英文字符。所以内容长度限制是精确到字节的。
那么微信对编辑框里的字数判断是怎么实现的呢?🤔
那个显示的数量是字节数除2呗。
a 59/2 = 29
as 58/2 = 29
补充,ASCII 只能表示英文字符,不知道那个中文字符两字节是哪来的。Unicode 对 ASCII 向下兼容,前 128 个字符是一致的,英文字符不占俩字节 (比方说 A 是 0x41)。大多数中文字符是两字节的,比方说“你”是 0x4F60 “好”是 0x597D。你这错误有点多啊 :-/
我直接懒得改了,反正你评论放这里应该没有憨憨不看。
s/字节/8bit/
呃,typecho-Comment2Mail这个插件太久没更新了,后台通过二级评论会有BUG,刚才先禁用了。