gpt4 book ai didi

php - PHP中如何显示特殊字符

转载 作者:行者123 更新时间:2023-12-03 00:24:40 26 4
gpt4 key购买 nike

我已经多次看到这个问题,但没有得到很好的解决。我有以下字符串:

$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; 。显然,我希望它能够呈现这个:

Résumé

我使用的是 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-1文本/html 文件。 (正如其他人提到的,您也可以通过更新 .ini.htaccess 文件来完成此操作。)然后,一旦浏览器开始将给定文件解析到 DOM 中,输出将遵循任何<meta charset="">规则,但保持 ISO 字符完整。

关于php - PHP中如何显示特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12699037/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com