如何在PHP中显示特殊字符
我已经多次看到这个问题,但是分辨率不高。我有以下字符串:
$string = "<p>Résumé</p>";
我想打印或回显字符串,但是输出将返回<p>R�sum�</p>
。所以我尝试htmlspecialchars()
或htmlentities()
哪个输出<p>Résumé<p>
和浏览器渲染<p>Résumé<p>
。很明显,我想要它呈现此:
恢复
我正在使用UTF-8:
header("Content-type: text/html; charset=UTF-8");
我在这里想念什么?为什么echo
和print
输出�
的任何特殊字符?为了澄清,该字符串实际上是存储在数据库中的整个HTML文件。现实世界中的应用程序不只是那条小线。
回答:
经过多次激烈的讨论后,我对我想发布给可能遇到此问题的其他人的问题有了更好的了解。
虽然UTF-8字符集将在客户端上显示特殊字符,服务器,在另一方面,可能不那么包容和将打印特殊字符,例如à
和è
如�
和�
。
为了确保您的服务器可以正确打印它们,请使用ISO-8859-1
字符集:
<?php /*Just for your server-side code*/
header('Content-Type: text/html; charset=ISO-8859-1');
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"><!-- Your HTML file can still use UTF-8-->
<title>Untitled Document</title>
</head>
<body>
<?= "àè" ?>
</body>
</html>
这将正确打印: àè
编辑(4年后):
我现在有了更好的理解。之所以起作用,是因为通过响应告知客户端(浏览器)header()
需要一个ISO-8859-1
text /
html文件。(正如其他人所提到的,您也可以通过更新您的.ini
或.htaccess
文件来完成此操作。) 然后
,一旦浏览器开始将给定文件解析为DOM,输出将遵循任何<meta charset="">
规则,但保持ISO字符完整。
以上是 如何在PHP中显示特殊字符 的全部内容, 来源链接: utcz.com/qa/424974.html