1个英文字母= 1个汉字吗?

时间:2018-10-10 02:52:06

标签: html unicode character-encoding

我是用户体验设计师,我们正在开发一种产品,该产品需要一个文本输入字段供用户插入其注释。无论是用繁体中文还是英文输入,都必须有一个字数限制指示

Input text field_with character limit_example

所以我的问题是:

如果字符数限制为15,我是否可以正确地说:

  • I am in Sweden(11/15个字符)

  • 我在瑞典(4/15个字符)

有人告诉我1个汉字算作2个字节的代码,而1个英文字母算作1个字节。这如何影响字符数限制?我想确保设计对于开发人员来说尽可能清晰。

1 个答案:

答案 0 :(得分:0)

是关于显示器尺寸的,对不对?在这种情况下,对单词进行计数将不会有用,因为单词的长度可以根据您的需要而定。

对字符进行计数虽然稍微有用一点,但由于不同的字符具有不同的宽度,因此也不能保证邮件的结尾位置正确。举个例子,这四个字符串每个都包含五个字符:

  • “''
  • “”
  • “ WWWWW”
  • “﷽﷽﷽﷽﷽”

确实没有解决此问题的优雅方法。您需要知道所使用字体的精确度量,然后计算每个输入的视觉宽度。

如果您满意“足够接近”的解决方案,则可以只使用<input>元素的maxlength属性。 HTML和JavaScript计数UTF-16代码单元,这意味着所谓的“基本多语言平面”中的字符计数为1,其他所有字符计数为2。

“基本的多语言平面”包含当今常用的所有字符中的99%,因此绝大多数用户可能不会注意到任何错误。您可以使用JavaScript做一些更奇特的事情,但我认为对于这种任务并不是必须的。

请记住,这种方法仍不能保证用户输入的内容在视觉上适合 ,除非您留出很多空白以防万一。一定要和一些窄而宽的字符一起玩,看看它们在打印时实际占用了多少空间。