这是我找到的一个链接,甚至还有我需要为我的其他项目使用的角色。
http://www.fileformat.info/info/unicode/char/2446/index.htm
该页面上有一个标题为“编码”的框。我想知道一些行。
我显然需要一个关于此类事情的课程,但我想知道“HTML实体(十进制)”和“HTML实体(十六进制)”之间的区别。
有趣的是,这让我感到困惑,我把这些字符扔在网页上,它们显示得很好。但是我没有在php页面中指定任何UTF-8编码。
<?php
$string1 = '⑆';
$string2 = '⑆';
echo $string1;
echo '<br>';
echo $string2;
?>
浏览器是否知道如何自动显示? 为了让它更奇怪,我只能在我的Mac上看到那些角色,在Firefox中。 但我的窗户框不想显示它们。我用chrome和firefox测试过它。我是否需要告诉浏览器正确查看它们?或者它是一个操作系统修改?
答案 0 :(得分:2)
它们都是有效的数字HTML实体,浏览器确实知道如何解码它们。区别在于第一个是hexadecimal数字,而后者是十进制数。
0x2446 = 9286
请注意,0x表示十六进制。
另请注意,最好始终让服务器明确指定编码。 W3C explains怎么做。 UTF-8是一个不错的选择。
如果您使用任何Unicode编码,您始终可以将该字符放在页面上,这样您就不必使用实体。
答案 1 :(得分:2)
确切地说,两者都不是entity reference。 &
是一个实体引用,引用定义为的entity named amp:
<!ENTITY amp CDATA "&" -- ampersand, U+0026 ISOnum -->
在这里,您可以看到实体的价值只是另一个参考:&
。
⑆
和⑆
“只是”character references(确切地说numeric character references)并通过指定{{3中的字符的代码位置来引用字符,即Unicode字符集。
答案 2 :(得分:0)
您可以在任何编码和实践中使用任何“HTML实体”,如果您已经安装了适当的字体,每个浏览器都可以正常工作。好吧,它是为显示当前编码中未包含的字符而创建的。在您的情况下它看起来您必须在Windows框中安装一些字体。
另一方面,它几乎与PHP无关。