gpt4 book ai didi

php - htmlspecialchars 输出空白

转载 作者:太空狗 更新时间:2023-10-29 14:45:11 25 4
gpt4 key购买 nike

同时使用 htmlspecialchars 和 htmlentities 会导致 符号甚至单个 ' 引号等项出现空白输出。显然,这绝对是无用的,但是在不使用 html 字符的情况下输出数据会导致这两个 � 的符号。发生这种情况的原因是什么?

这是导致问题的代码:

<p>
<?php
echo nl2br(htmlspecialchars($aboutarray[0]['about_us'], ENT_COMPAT, "UTF-8"));
?>
</p>

最佳答案

该字符串未以有效的 UTF-8 编码进行编码。它可能采用另一种编码,如 UTF-16,或者它可能只包含一些不符合任何格式的二进制垃圾。

底线是,由于您将“UTF-8”指定为 htmlspecialchars() 的编码类型参数,如果字符串不符合“UTF-8”,它将返回一个空字符串。它在 PHP manual 中说明了这一点.

一个简单的解决方法是使用替换或忽略标志。变化:

htmlspecialchars($aboutarray[0]['about_us'], ENT_COMPAT, "UTF-8")

收件人:

htmlspecialchars($aboutarray[0]['about_us'], ENT_COMPAT|ENT_SUBSTITUTE, "UTF-8")

或者:

htmlspecialchars($aboutarray[0]['about_us'], ENT_COMPAT|ENT_IGNORE, "UTF-8")

注意:ENT_IGNORE 会删除不合规的字节。这可能会导致 a security issue . 最好真正了解字符串的内容及其编码方式。更正问题的根源,而不是使用简单的 ENT_IGNORE 修复。

您应该问问自己,为什么您的字符串不是用 UTF-8 编码的……应该是,但不是。

刚好我也遇到了这个问题;您可以阅读有关返回空字符串的原因的详细信息 here .

关于php - htmlspecialchars 输出空白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11210413/

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