charset-utf8和字符实体

时间:2010-10-13 09:36:49

标签: html encoding utf-8 editor html-entities

我建议将我的windows-1252 XHTML网页转换为UTF-8。

我的编码中有以下字符实体:

  • ' - 撇号,
  • ► - 右指针,
  • ◄ - 左指针。

如果我更改了charset并使用我的编辑器将页面保存为UTF-8:

  • 撇号仍然是一个角色实体;
  • 指针在代码中转换为符号(可能是因为UTF-8不支持实体?)。

问题:

  1. 如果我正确理解UTF-8,您不需要使用实体,可以直接在代码中输入字符。在哪种情况下,我可以安全地用键入的撇号替换#39

  2. 编辑器将指针符号直接放入我的代码中是否正确,并且这些可以在现代浏览器上可靠地显示,似乎没问题?据推测,如果我使用UTF-8,我无法回复实体?

  3. 感谢。

3 个答案:

答案 0 :(得分:2)

这是charset,而不是chartset。

1)它取决于撇号的使用位置,它也是一个有效的ASCII字符,因此取决于字符意图(仅用于显示(在DOMText节点内)或在代码中使用)你可能会也可能不会能够使用文字撇号。

2)如果你的编辑器是一个现代编辑器,它将使用utf序列而不是char来显示文本。代码中使用的大多数序列只是纯ASCII(而ASCII是utf8的子集),因此这些字符占用一个字节。其他字符可能以专门的方式占用两个,三个甚至四个字节。它们仍将作为一个字符显示给您,但字符和字节之间的关系变得不同。

反正;因为所有有效的ASCII字符在ASCII,utf8甚至是windows-1252中完全相同。你不应该看到使用utf8的任何问题。您仍然可以使用数字和命名实体,因为它们是用这些有效字符编写的。你没必要。

P.S。所有现代浏览器都可以使用utf8。但我们对“ modern ”的定义可能有所不同。

答案 1 :(得分:1)

实体有三个目的:编码字符无法使用所使用的字符编码进行编码(与UTF-8无关),编码字符在给定键盘上键入不方便,以及编码非法字符未逸出。

无论编码是什么,

►都应该始终生成►。如果没有,那就是其他地方的错误。

直接在源代码中的

在UTF-8中很好。你可以做那个或实体,但没有区别。

'在大多数情况下都很好,但不是一些。以下是允许的:

<span title="Jon's example">This is Jon's example</span>

但必须编码:

<span title='Jon&#x27;s example'>This is Jon's example</span>

因为否则它将被视为'结束属性值。

答案 2 :(得分:0)

如果您从文字处理程序复制/粘贴内容或代码是XML方言,请使用实体。在文本编辑器中使用宏来一次查找/替换常见的宏。这是一个简单的列表:

  • 一半:½=&gt; &#189;
  • 急性重音:é=&gt; &#233;
  • &符号:&amp; =&GT; &#38;
  • 撇号:'=&gt; &#39;
  • 反击:'=&gt; &#96;
  • 反斜杠:\ =&gt; &#92;
  • 子弹:•=&gt; &#8226;
  • 美元符号:$ =&gt; &#36;
  • 美分符号:¢=&gt; &#162;
  • 省略号:... =&gt; &#8230;
  • Emdash: - =&gt; &#8212;
  • Endash: - =&gt; &#8211;
  • 左引号:“=&gt; &#8220;
  • 右引用:“=&gt; &#8221;

<强>参考