这个问题告诉我
htmlentities 在所有方面都与 htmlspecialchars() 相同,除了 htmlentities(),所有具有 HTML 字符实体等价物的字符都被翻译成这些实体。
听起来 htmlentities 是我想要的。
然后这个问题告诉我我需要“UTF-8”参数来摆脱这个错误:
Invalid multibyte sequence in argument
所以,这是我的编码包装函数(标准化不同 PHP 版本的行为)
function html_entities ($s)
{
return htmlentities ($s, ENT_COMPAT /* ENT_HTML401 */, "UTF-8");
}
我仍然收到“参数中的多字节序列”错误。
这是一个触发错误的示例字符串,它是十六进制编码:
Jigue à Baptiste
4a 69 67 75 65 20 e0 20 - 42 61 70 74 69 73 74 65
我注意到 à 被编码为 0xe0,但编码为高于 0x80的单个字节。
我究竟做错了什么?