[英]HTML character entities and character encoding set
在HTML文档中包含HTML实体时,实体是否需要来自指定文档使用的相同字符编码集?
例如,如果我要在指定为UTF-8
的HTML文档中使用版权符号,是否有必要使用Unicode HTML实体( ©
)或者是否可以使用其他实体,例如ASCII
HTML实体( ©
)?
请解释一下你的答案。 我知道它会“起作用”,但是有一种情况它会起作用吗?
谢谢!
©
和©
指定相同的字符 - 169相当于十六进制A9。 这些都指定了版权符号。 HTML中的字符实体始终引用Unicode代码点,这在HTML 4标准中有所涉及。 因此,即使您的字符集发生更改,您的实体仍会引用相同的字符。
这也意味着您可以编码实际未出现在您选择的字符集中的字符。 我刚刚在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 ... ?>
标记中包含字符集。
UTF-8编码的优点在于您实际上可以只包含二进制字符。 您根本不需要将其编码为实体。 因此:©
哦,你只是想知道这两个实体之间的区别? 空无一人。 一个用十六进制描述字节,用十进制描述另一个字节。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.