在HTML文档中包含HTML实体时,实体是否需要来自指定文档使用的相同字符编码集?
例如,如果我要在指定为UTF-8
的HTML文档中使用版权符号,是否有必要使用Unicode HTML实体(©
)或者是否可以使用使用其他实体,例如ASCII
HTML实体(©
)?
请解释你的答案。我知道它会“起作用”,但是有一种情况它会起作用吗?
谢谢!
答案 0 :(得分:10)
©
和©
指定相同的字符 - 169相当于十六进制A9。这些都指定了版权符号。 HTML中的字符实体始终引用Unicode代码点,HTML 4 Standard中对此进行了介绍。因此,即使您的字符集发生更改,您的实体仍会引用相同的字符。
这也意味着您可以编码实际未出现在您选择的字符集中的字符。我刚刚在ISO-8859-1字符集中创建了一个文档,但它包含了一个希腊语lambda。此外,ASCII不能直接编码版权符号,但它可以通过字符实体。
编辑:阅读其他答案的评论,我想稍微澄清一下。如果您使用UTF-8作为文档的字符编码,则可以在原始HTML源代码中按原样编写版权符号。 (你需要找到一些方法来输入它,当然:复制粘贴是常用的。)UTF-8允许你直接编码你想要的任何符号。 ISO-8859-1更受限制,而ASCII更是如此。例如,在我的HTML中,如果我的文档是UTF-8文档,我可以这样做:
<p>Hi there. This document is ©2010. Good day!</p>
或:
<p>Hi there. This document is ©2010. Good day!</p>
或:
<p>Hi there. This document is ©2010. Good day!</p>
第一个仅在字符集支持“©”时有效。其他两个总是有效的,但可读性较差。无论你使用什么文本编辑器,如果值得它的重量,应该能够告诉你它编码文档的字符集。
如果这样做,您需要确保您的Web服务器通知客户端正确的字符集,或者您的文档用以下内容声明它:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
我在那里使用UTF-8作为例子。 XHTML应该在开头<?xml ... ?>
标记中包含字符集。
答案 1 :(得分:4)
UTF-8编码的优点在于您实际上只能包含二进制字符。您根本不需要将其编码为实体。因此:©
哦,你只是想知道两个实体之间的区别?空无一人。一个用十六进制描述字节,用十进制描述另一个字节。