我应该如何使用htmlentities来显示utfó(而不是³)

时间:2013-02-13 16:28:28

标签: php email encoding html-email

我正在用PHP编写一份小通讯

我正在使用PHP的htmlentities($str),所以我在客户端的电子邮件中编码没有问题。

这个$str来自mysql。

我看到ó,它应该是客户端中的ó

我还在时事通讯中写了一些文字echo "ó";,我在客户端看到ó

然后我想在申请$str之前我必须对htmlentities做一些处理,但我不明白我该怎么办。

我怎么知道(我应该采取什么治疗方法)$str

有什么问题

1 个答案:

答案 0 :(得分:3)

这解决了问题

https://stackoverflow.com/a/10539209/912450

//You must manually specify the encoding (UTF-8) for htmlentities()
echo htmlentities($str, null, "UTF-8");

问题似乎是(根据文档)如果未指定UTF-8,则在5.4.0之前的PHP版本中,ISO-8859-1是htmlentities的默认编码。

如果$str是UTF8编码,那么它只能在PHP> = 5.4.0中正常工作,如果没有指定编码,则UTF-8是htmlentities的默认编码。