【发布时间】:2019-05-16 18:42:12
【问题描述】:
我想为我的用户启用在输入字段中输入表情符号字符的选项。我认为在 2019 年,这应该像将网站的元字符集设置为 UTF-8 一样简单。但是,在 Chrome 或 Firefox 中进行测试时,以下示例以不同方式计算补充 UTF-8 字符(长度为 4 个字节)。
在第一个输入中,我只能在便便之后再输入 2 个字符。在第二个输入中,我仍然可以在 ‰ 之后再输入 3 个字符,长度为 3 个字节。
是什么导致了这种不一致的行为?是否还有其他 4 字节字符的 HTML 元设置?它在 Edge 17 中运行良好。即使是垃圾 IE 11 也能正确计算长度。
<input type="text" value="????" maxlength="4" />
<input type="text" value="‰" maxlength="4" />
我的测试用例: http://jsfiddle.net/L726ryea/7/
【问题讨论】:
-
是的,Flags 会变得更糟。尝试粘贴
????????,由于这是双双码位字符,因此只能粘贴一个。 Why Do Flag Emoji Count As Two Characters?
标签: html utf-8 html-input maxlength