我正在用 PHP 写一篇小型时事通讯
我正在使用 PHP htmlentities($str)
,所以我在客户端电子邮件中的编码没有问题。
这$str
是从mysql出来的。
我看到ó
它什么时候应该是ó
在客户端。
我还在时事通讯中写了一些文本,我echo "ó";
和我在客户端中看到它为ó
.
然后我想我必须在$str
应用之前做一些处理,htmlentities
但我不明白我该怎么做。
我怎么知道出了什么问题(我应该做什么治疗)$str
?
我正在用 PHP 写一篇小型时事通讯
我正在使用 PHP htmlentities($str)
,所以我在客户端电子邮件中的编码没有问题。
这$str
是从mysql出来的。
我看到ó
它什么时候应该是ó
在客户端。
我还在时事通讯中写了一些文本,我echo "ó";
和我在客户端中看到它为ó
.
然后我想我必须在$str
应用之前做一些处理,htmlentities
但我不明白我该怎么做。
我怎么知道出了什么问题(我应该做什么治疗)$str
?
这解决了问题
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 中正常工作,htmlentities
如果没有指定编码,则 UTF-8 是默认编码。