htmlentities 破坏 utf-8 字符串

php
2022-08-30 16:27:21

我在这里发生了一些奇怪的事情,我不明白为什么在我的php 5.2.5服务器上(仅在Linux上,Windows php服务器没有同样的问题)当我使用POST表单将内容发布在包含“é”的输入上时,在另一侧我

echo(htmlentities($_POST["myinput"])) 

它回声é

但是,如果我回声我的

$_POST["myinput"] 

简单地说,它显示“é”,所以这意味着我的htmlentities默认情况下不使用UTF-8,我在哪里可以更改htmlentities使用的Charset?

我尝试在我的php中更改它.ini default_charset = “UTF-8”,但它也不起作用?


答案 1

htmlspecialchars($str, ENT_QUOTES, "UTF-8")

这也比仅仅防止xss更好。htmlentities()


答案 2

在 5.4.0 版中,编码参数的默认值更改为 UTF-8。

来源:手册


推荐