PHP htmlentities 双重编码

PHP htmlentities Double Encoding

我正在尝试将 WYSIWYG 输入的内容保存到 Oracle 数据库中。这是我正在使用的:

$data = htmlentities($_POST['data'], ENT_QUOTES, "UTF-8");

我的期望是,当我将 John's 作为输入的值时,它将作为 John's 保存在数据库中,但它被保存为 John'.

对我来说,这看起来像是双重 HTML 实体编码问题。

你能帮我解决这个问题吗?

浏览 documentation,我注意到最后一个参数是双重编码的布尔值。

$data = htmlentities($_POST['data'], ENT_QUOTES, "UTF-8", false);

成功了。