我在utf8中存储了外语字符串。在显示它们时,我希望它们能够以这样的方式进行转换:重音字符成为它们的html对应物,例如é
变为é
然而,我说的是我的搜索,我所能找到的只是htmlentities()
而没有这样做。
答案 0 :(得分:10)
我发现这是解决这个问题的一个非常简单的方法。
第一部分尝试对文本进行编码。如果$ output返回一个空字符串,则该值为utf8编码,然后创建html实体。
$output = htmlentities($value, 0, "UTF-8");
if ($output == "") {
$output = htmlentities(utf8_encode($value), 0, "UTF-8");
}
示例:
Montréal
输出:
Montréal
答案 1 :(得分:8)
确保在致电htmlentities()
时正确指定编码。
文档显示它默认为'UTF-8'
,但如果你进一步阅读,你会发现这是PHP 5.4的新功能。如果您使用的是旧版本,则默认值为'ISO-8859-1'
,您需要确保将其明确指定为'UTF-8'
,而不是依赖于默认行为。
htmlentities($string, 0, 'UTF-8');