我想让我的用户可以选择在输入字段中输入emoji字符。我认为在2019年,这应该和将网站的元字符集设置为UTF-8一样简单。但是,在chrome或firefox中测试时,下面的示例以不同的方式计算补充的utf-8字符(长度为4字节)。
在第一个输入中,我只能在poop后面再输入2个字符。在第二个输入中,我仍然可以在后面再输入3个字符
â°
它有3个字节长。
是什么导致了这种不一致的行为?是否有其他4字节字符的HTML元设置?它在第17边缘运行良好。即使是垃圾箱11也能正确计算长度。
<input type="text" value="ð©" maxlength="4" />
<input type="text" value="â°" maxlength="4" />
我的测试案例:
http://jsfiddle.net/L726ryea/7/