我正在用PHP编写一份小通讯
我正在使用PHP的htmlentities($str)
,所以我在客户端的电子邮件中编码没有问题。
这个$str
来自mysql。
我看到ó
,它应该是客户端中的ó
。
我还在时事通讯中写了一些文字echo "ó";
,我在客户端看到ó
。
然后我想在申请$str
之前我必须对htmlentities
做一些处理,但我不明白我该怎么办。
我怎么知道(我应该采取什么治疗方法)$str
?
答案 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
的默认编码。