如何编码验证的输入[type =“submit”]的值

时间:2013-05-15 13:11:24

标签: html forms validation encoding glyph

两个问题

  1. 对表单元素值的稀有字符进行编码的最佳方法是什么?
  2. 以下示例中的分号是导致验证错误还是其他原因?
  3. HTML

    <input type="submit" value="&#61442;">
    

    验证错误:

    Document uses the Unicode Private Use Area(s), 
    which should not be used in publicly exchanged documents. (Charmod C073)
    

    此元素的值导致错误。我需要将这个十进制值重新编码为能够渲染我的字形并验证的东西。

3 个答案:

答案 0 :(得分:3)

  1. 这并不重要。十进制字符引用和十六进制字符引用都可以正常工作(没有实际区别)。在UTF-8编码文档中使用这样的字符可能会使代码更具可读性,但编码必须为UTF-8且必须声明为UTF-8。对于您正在使用的私人使用代码点,在查看源代码时,程序可能会将其显示为任何内容。私人使用代码点没有明确的含义;任何字符对这种代码点的分配都取决于相关方之间的协议。而你最喜欢的代码编辑器几乎没有达成这样的协议。

  2. 不,分号是正确的。警告(不是错误消息)不是基于任何HTML规范或草稿,而是基于W3C推荐,称为CharMod(万维网1.0的基本模型:基础知识)。警告指的是项目C073:“公开互换的内容不应该在私人使用区域使用代码点。”

  3. 在实际方面,只要不使用特定的私有编码字体,代码就会失败,例如,因为浏览器已设置为忽略网页上建议的字体或因为无法加载字体。因此,最好使用包含alt <input type=image><button>的{​​{1}}或<img>文本,并使用适当的{{1}}文字。

答案 1 :(得分:0)

  

为表单元素值编码稀有字符的最佳方法是什么?

普通UTF-8。它产生最可读的源代码并使用最少的字节。

  

以下示例中的分号是导致验证错误还是其他原因?

不,这是角色的选择。它不是unicode标准的一部分。有关详细信息,请参阅wikipedia

答案 2 :(得分:0)

这是对 TeamTreeHouse 上的一个相关问题的稍微细致的回答,其中验证器无法针对导航菜单中使用的图标(这也是我的情况)。

<块引用>

我不会太担心这个,因为它是警告而不是 错误。如果那是图标,我会保留分号 文档建议(看起来您正在使用 IcoMoon?)。

IcoMoon 对使用 Private Use Area 的解释是:

不建议对图标字体使用拉丁字母。使用 Unicode 的私人使用区域是图标字体的最佳选择。经过 使用 PUA 字符,您的图标字体将与屏幕兼容 读者。但如果您使用拉丁字符,屏幕阅读器可能会读取 单个含义较少的字母,这会令人困惑。

这是一些人争论它是好用还是好用的链接 不是。

数百个站点使用 IcoMoon 的代码没有问题。