PHP Unicode字符问题

PHP Unicode字符问题,php,utf-8,Php,Utf 8,这是我找到的一个链接,它甚至有一个角色我需要在我的其他项目中使用 该页上有一个标题为“编码”的框。我想知道其中的一些排 我显然需要一门关于这类东西的课程,但我想知道“HTML实体(十进制)”和“HTML实体(十六进制)”之间有什么区别 有趣的是,这让我很困惑,我把这些字符扔到网页上,它们显示得很好。但是我没有在php页面中指定任何UTF-8编码 <?php $string1 = '&#x2446;'; $string2 = '&#9286;'; echo $string

这是我找到的一个链接,它甚至有一个角色我需要在我的其他项目中使用

该页上有一个标题为“编码”的框。我想知道其中的一些排

我显然需要一门关于这类东西的课程,但我想知道“HTML实体(十进制)”和“HTML实体(十六进制)”之间有什么区别

有趣的是,这让我很困惑,我把这些字符扔到网页上,它们显示得很好。但是我没有在php页面中指定任何UTF-8编码

<?php
$string1 = '&#x2446;';
$string2 = '&#9286;';

echo $string1;
echo '<br>';
echo $string2;
?>

浏览器是否知道如何自动显示两者? 更奇怪的是,我只能在我的Mac电脑上,在Firefox中看到这些字符。
但是我的windows box不想显示它们。我已经在chrome和firefox上测试过了。我需要告诉浏览器正确地查看它们吗?还是操作系统修改?

它们都是有效的数字HTML实体,浏览器确实知道如何解码它们。区别在于第一个是数字,而第二个是十进制

0x2446=9286

请注意,0x表示十六进制

还请注意,始终让服务器显式指定编码是一种很好的做法。W3C如何做到这一点。UTF-8是一个不错的选择


如果您使用任何Unicode编码,您总是可以将字符放在页面上,因此您不必使用实体。

它们都是有效的数字HTML实体,浏览器确实知道如何解码它们。区别在于第一个是数字,而第二个是十进制

0x2446=9286

请注意,0x表示十六进制

还请注意,始终让服务器显式指定编码是一种很好的做法。W3C如何做到这一点。UTF-8是一个不错的选择


如果您使用任何Unicode编码,您总是可以将字符正确地放在页面上,因此您不必使用实体。

准确地说,两者都不是<代码>&是一个实体引用,引用的定义为:

<!ENTITY amp     CDATA "&#38;"   -- ampersand, U+0026 ISOnum -->

在这里,您可以看到实体的值只是另一个引用:
&


是“just”(准确地说)并通过指定字符在中的代码位置来引用字符,即Unicode字符集。

准确地说,两者都不是<代码>&是一个实体引用,引用的定义为:

<!ENTITY amp     CDATA "&#38;"   -- ampersand, U+0026 ISOnum -->

在这里,您可以看到实体的值只是另一个引用:
&

是“just”(确切地说)并通过指定字符在中的代码位置来引用字符,即Unicode字符集。

您可以在任何编码中使用任何“HTML实体”。在实践中,如果您安装了适当的字体,每个浏览器都可以正常工作。它是为显示当前编码中未包含的字符而创建的。在您的情况下,看起来您必须在Windows框上安装一些字体

另一方面,它几乎与PHP无关。

您可以在任何编码中使用任何“HTML实体”。实际上,如果您安装了适当的字体,每个浏览器都可以正常工作。它是为显示当前编码中未包含的字符而创建的。在您的情况下,看起来您必须在Windows框上安装一些字体


另一方面,它几乎与PHP无关。

您还没有告诉我您的Gravatar来自哪里。我需要开始一个元问题吗?:)是什么导致不同计算机上的浏览器对其进行不同的翻译?@Pekka:我关于更仔细阅读《泰坦尼克号》的提示没有帮助吗?@user271619:字符引用只描述字符,即文本信息的原子。该信息与字符的视觉表示是分开的。计算机需要有一个包含这些字形的图形来显示文本。如果使用的字体不包含特定字符的标志符号,或者没有任何其他字体包含该标志符号,则会显示替换字符或标志符号。在Unicode中,由替换字符U+FFFD
@Gumbo不!我确实解决了几个问题,但没有抓住线索。唯一一个反复出现的主题是。。。“永远”是“德国的末日”,没有海狸:)你还没有告诉我你的坟墓是从哪里来的。我需要开始一个元问题吗?:)是什么导致不同计算机上的浏览器对其进行不同的翻译?@Pekka:我关于更仔细阅读《泰坦尼克号》的提示没有帮助吗?@user271619:字符引用只描述字符,即文本信息的原子。该信息与字符的视觉表示是分开的。计算机需要有一个包含这些字形的图形来显示文本。如果使用的字体不包含特定字符的标志符号,或者没有任何其他字体包含该标志符号,则会显示替换字符或标志符号。在Unicode中,由替换字符U+FFFD
@Gumbo不!我确实解决了几个问题,但没有抓住线索。唯一一个反复出现的主题是。。。“永远”是“德国的末日之旅”,没有海狸:)似乎就是这样。我的windows设备上的字体没有Mac的字体那么硬。出于好奇,你去哪里更新他们的字体?你可以购买它们,从互联网上下载免费字体,安装可选的操作系统包,安装附加字体的应用程序……看起来就是这样。我的windows设备上的字体没有Mac的字体那么硬。出于好奇,哪里可以更新他们的字体?你可以购买它们,从互联网下载免费字体,安装可选的操作系统包,安装附加字体的应用程序。