gpt4 book ai didi

php - html实体不转换特殊字符

转载 作者:行者123 更新时间:2023-12-02 05:13:30 25 4
gpt4 key购买 nike

我正在使用 htmlentities,它正在转换带有重音符号的字符,但它不会转换这种类型的引号“。相反,浏览器会显示一个带有问号的奇怪符号 �

如何转换这些显示为符号的字符?例如 table 上放着一本名为“Hello Colors”的书。

我试过这个命令,但它不工作:

htmlentities($message);
htmlentities($message, ENT_QUOTES, 'UTF-8');
htmlentities($message, ENT_NOQUOTES, 'UTF-8');
htmlentities($message, ENT_COMPAT, 'UTF-8');

谢谢。

我刚刚意识到一些奇怪的事情,如果我执行以下操作

echo $message; die(); 

显示用于调试的白页显示报价!那么发生了什么?为什么它在网站页面中显示不正确? :S

最佳答案

看起来您在浏览器中错过了字符集规范,

尝试添加 <meta charset="UTF-8">这在您的网页头部部分。我以前遇到过这样的问题,以 UTF -8 格式显示多语言文本,我也做了同样的事情来解决这个问题。

希望对你有帮助

顺便说一句

用于 HTML 5 <meta charset="UTF-8">作品

对于 HTML 4

<meta http-equiv="Content-type" content="text/html;charset=UTF-8">

如果是 XML,您必须指定

<?xml version="1.0" encoding="UTF-8"?>

这里是你获取所有信息的地方

Declaring character encodings in HTML

有几种设置内容字符集的方法,即使您也可以将服务器设置为始终呈现 utf-8,您可以在此处阅读 server setup 中的更多信息。节

编辑:-

评论区跟你聊完,

你的问题出在 Joomla 上

你测试了网页中的 charset ISO-8859 并且它有效,这清楚地证明您正在获取 ISO 而不是 UTF-8 的内容

我认为可能你的 mysql 数据库不是 UTF-8,这就是它发送 ISO 文本到前面的原因,你可以将 DB 更改为 UTF-8 general-ci 或 ISO latin1,这可行并且有效建议您将 DB 更改为 utf-8-general-ci,因为您已经将标题设置为 utf-8 的 html 页面,这将解决您的问题。

此外,如果您不能更改数据库,那么您已经知道它在 ISO 字符集中,因此请将所有 Joomla 模板 header 更改为 ISO 字符集。

看起来像这样

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

在 PHP 中

header('Content-Type: text/html; charset=iso-8859-1'); 

通过删除现有的字符集 utf-8 声明。

关于php - html实体不转换特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15007956/

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