如何在PHP中显示特殊字符

我已经看到这个问题了几次,但是没有一个很好的解决方案.我有以下字符串:
$string = "<p>Résumé</p>";

我想打印或回显字符串,但输出将返回< p>R sum < / p&gt ;.所以我尝试输出& p& gt; R& eacute; sum& eacute;& lt; p& gt的htmlspecialchars()或htmlentities()并且浏览器呈现& p& R& eacute; sum& eacute;& lt; p& gt;.显然,我想要这样做:

Résumé

我正在使用UTF-8:

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

在这里缺少什么?为什么回声和打印输出为任何特殊字符?要澄清,字符串实际上是存储在数据库中的整个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年后):

我现在有一点更好的理解.这样做的原因是客户端(浏览器)通过响应头()被告知希望使用ISO-8859-1文本/ html文件. (正如其他人所说,您也可以通过更新.ini或.htaccess文件来执行此操作.)然后,一旦浏览器开始将该给定文件解析为DOM,输出将遵循任何< Meta charset =“”> ;规则,但保持您的ISO字符的触觉.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...