HTML特殊字符未正确显示

时间:2016-11-07 06:10:15

标签: php html mysql htmlspecialchars

我有两个PHP文件,当我从这些页面上的数据库中获取数据并使用print_r显示它们时,两个页面都以不同的方式显示内容。

实际上我的内容中有一些HTML特殊字符,我在MySQL数据库中的字符串之前使用htmlspecialchars进行了转义。

当我获取它们在page1.php上显示它时显示为

My ‘pop’ to display

但在page2.php上显示为

My ‘pop’ to display

我还想提一下page1.php是我的网页,我有print_r只是为了检查page2.php上的问题,其中page2.php是一个api页面,我使用echo json_encode写入数据但是检查问题我已将其替换为print_r

2 个答案:

答案 0 :(得分:0)

For Display使用此代码。

$message = "My ‘pop’ to display";

echo htmlspecialchars($messge, ENT_QUOTES, 'UTF-8');

答案 1 :(得分:-1)

最后我得到了解决方案。因为我的数据库中的数据已经使用htmlspecialchars进行操作,甚至在删除htmlspecialchars之后我无法更正数据,我发现此解决方案将所有html编码的字符转换回原始

以下是执行此操作的简单代码

$input = "This is the ‘text’ I fetched";
$output = preg_replace_callback("/(&#[0-9]+;)/", function($m) { return mb_convert_encoding($m[1], "UTF-8", "HTML-ENTITIES"); }, $input);
echo $output;

Referance:http://www.codewithasp.net/2016/11/html-entity-decode-to-original-php.html

<强>已更新

另外,我们也可以使用html_entity_decode执行与tadman评论后发现的相同的内容。