如何在PHP中显示特殊字符

我已经多次看到这个问题,但是分辨率不高。我有以下字符串:

$string = "<p>Résumé</p>";

我想打印或回显字符串,但是输出将返回<p>R�sum�</p>。所以我尝试htmlspecialchars()htmlentities()哪个输出&lt;p&gt;R&eacute;sum&eacute;&lt;p&gt;和浏览器渲染&lt;p&gt;R&eacute;sum&eacute;&lt;p&gt;。很明显,我想要它呈现此:

恢复

我正在使用UTF-8:

header("Content-type: text/html; charset=UTF-8");

我在这里想念什么?为什么echoprint输出的任何特殊字符?为了澄清,该字符串实际上是存储在数据库中的整个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-1text /

html文件。(正如其他人所提到的,您也可以通过更新您的.ini.htaccess文件来完成此操作。) 然后

,一旦浏览器开始将给定文件解析为DOM,输出将遵循任何<meta charset="">规则,但保持ISO字符完整。

以上是 如何在PHP中显示特殊字符 的全部内容, 来源链接: utcz.com/qa/424974.html

回到顶部