☕趁着被宿舍大蚊子吸血的时间发现微信这个细节的bug,用ASCII编码英文字符占一个字节,中文字符占两个,UTF-8编码中文字符占三个,Unicode编码中英文字符均占两个字节。
​微信签名编辑框在显示0可用位置时可能并没有完全占满,你仍然可以输入一个英文字符。所以内容长度限制是精确到字节的。
​那么微信对编辑框里的字数判断是怎么实现的呢?🤔Collage_20220411_004509.jpg

标签: none

已有 5 条评论

  1. 那个显示的数量是字节数除2呗。

    a 59/2 = 29
    as 58/2 = 29

    1. 补充,ASCII 只能表示英文字符,不知道那个中文字符两字节是哪来的。Unicode 对 ASCII 向下兼容,前 128 个字符是一致的,英文字符不占俩字节 (比方说 A 是 0x41)。大多数中文字符是两字节的,比方说“你”是 0x4F60 “好”是 0x597D。你这错误有点多啊 :-/

      1. 我直接懒得改了,反正你评论放这里应该没有憨憨不看。

      2. s/字节/8bit/

        1. 呃,typecho-Comment2Mail这个插件太久没更新了,后台通过二级评论会有BUG,刚才先禁用了。

添加新评论