【发布时间】:2021-11-22 21:26:24
【问题描述】:
我遇到了 PHP 的 htmlentities 和 é 字符的问题。我知道这是我忽略的某种编码问题,所以希望有人能看到我做错了什么。
直接运行htmlentities("é") 不会按预期返回正确的代码(é 或é。我尝试将字符集强制为“UTF-8”(使用 htmlentities 的字符集参数)但是同样的事情。
最终目标是让这个字符在以“ISO-8859-1”编码的 HTML 电子邮件中发送。当我尝试强制它进入该编码时,同样的问题。在电子邮件的源代码中,您会看到 é,在 HTML 视图中看到 é。
谁能解释我的错误?
【问题讨论】:
-
尝试调用
get_html_translation_table()并查看结果数组。这将告诉您是否应该翻译您的 e-acute。如果这不起作用,您可以随时获取此表,将 e-acute 添加到其中,然后使用strtr($string, $table)进行编码。 -
确保您的文件以 UTF-8 编码,并确保您的 编码字符设置正确。
-
如果您将网站编码设置为 UTF-8(使用
<meta>标记或 http 标头,则根本不需要对重音字符进行实体编码。
标签: php character-encoding html-entities