【发布时间】:2019-11-12 19:49:23
【问题描述】:
我正在尝试将预先导入的字符串从ISO-8859-1 转换为UTF8。我正在尝试所有可用的解决方案,但似乎没有任何效果。
例子:
$text = "<p>Ayurveda ist die älteste Lebens- und Gesundheitslehre der Welt. Sie ist in einer Hochkultur auf dem Gebiet des heutigen Indien entstanden und ihre Prinzipien sind universell gültig.
</p>";
echo iconv('ISO-8859-1', "UTF-8//IGNORE", $text); // not working.
echo utf8_encode($text); // not working.
输出应该是:
Ayurveda ist die älteste Lebens- und Gesundheitslehre der Welt. Sie ist in einer Hochkultur auf dem Gebiet des heutigen Indien entstanden und ihre Prinzipien sind universell gültig.
请帮忙。
更新:
我正在使用带有 UTF8 字符集的 WordPress。当我将其更改为latin1 时,它工作正常,但我想将它们转换为UTF8
【问题讨论】:
-
你为什么期待看到 ä作为一个?如果你想看到ä,代码必须是ä
-
@AnatoliyR - 我已经更新了这个问题。请检查更新部分。如果我将字符集从 WordPress 配置更改为 UTF8,它工作正常。
-
您的原始字符串包含 html 实体。要转换,您需要运行
$text = html_entity_decode($text);,然后运行iconv(),最后重新转换运行html_entity_encode($text); -
@WilliamPrigolLopes 它不工作。它给了
Ayurveda ist die älteste Lebens- und Gesundheitslehre der Welt. Sie ist in einer Hochkultur auf dem Gebiet des heutigen Indien entstanden und ihre Prinzipien sind universell gültig.。
标签: php string utf-8 iso-8859-1