3

Two questions

  1. What is the best way to encode the rarer characters for form element values?
  2. Is the semi-colon in the example below causing the validation error or is it something else?

HTML

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

Validation Error:

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

The value of this element is causing the error. I need to recode this decimal value to something that will render my glyph and also validates.

4

3 回答 3

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

  2. 不,分号是正确的。警告(不是错误消息)不是基于任何 HTML 规范或草案,而是基于称为CharMod(万维网 1.0 的字符模型:基础)的 W3C 建议。警告指的是那里的 C073 项:“公开交换的内容不应该在私人使用区域使用代码点。”</p>

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

于 2013-05-15T14:21:27.267 回答
0

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

纯 UTF-8。它产生最易读的源代码并使用最少的字节。

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

不,这是性格的选择。它不是 unicode 标准的一部分。有关更多详细信息,请参阅维基百科

于 2013-05-15T13:14:01.373 回答
0

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

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

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

不建议对图标字体使用拉丁字母。使用 Unicode 的 Private Use Area 是图标字体的最佳选择。通过使用 PUA 字符,您的图标字体将与屏幕阅读器兼容。但是如果你使用拉丁字符,屏幕阅读器可能会读到更少的字母,这会造成混乱。

这是一些人争论它是否有用的链接。

数百个站点站点毫无问题地使用来自 IcoMoon 的代码。

于 2021-06-27T03:33:55.867 回答