微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在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字符的触觉.

原文地址:https://www.jb51.cc/php/131441.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐