【问题标题】:Converting string from ISO-8859-1 to UTF8将字符串从 ISO-8859-1 转换为 UTF8
【发布时间】:2019-11-12 19:49:23
【问题描述】:

我正在尝试将预先导入的字符串从ISO-8859-1 转换为UTF8。我正在尝试所有可用的解决方案,但似乎没有任何效果。

例子:

$text = "<p>Ayurveda ist die &Atilde;&curren;lteste Lebens- und Gesundheitslehre der Welt. Sie ist in einer Hochkultur auf dem Gebiet des heutigen Indien entstanden und ihre Prinzipien sind universell g&Atilde;&frac14;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


【解决方案1】:

我尝试了交互模式。您的文本似乎以 UTF-8 编码:

$ php -a
Interactive mode enabled

php > $text = "<p>Ayurveda ist die &Atilde;&curren;lteste Lebens- und Gesundheitslehre der Welt. Sie ist in einer Hochkultur auf dem Gebiet des heutigen Indien entstanden und ihre Prinzipien sind universell g&Atilde;&frac14;ltig.
php " </p>";
php > echo utf8_encode(html_entity_decode($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>
php > echo utf8_decode(html_entity_decode($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>
php > 

您可以尝试在您的环境中使用上述方法。如果您在加载页面时问题仍然存在,您可以尝试iconv() 进行修复。

【讨论】:

  • 谢谢。如果输入是 Thermosbehälter gefüllt und warm getrunken. dem Körper transportieren.auch â&amp;#8364;&amp;#382;Ayurveda-Champagnerâ&amp;#8364;&amp;#339; genannt. 并且输出应该是 Thermosbehälter gefüllt und warm getrunken. dem Körper transportieren.auch „Ayurveda-Champagner“ genannt.
  • 这里唯一缺少的是处理 字符。
猜你喜欢
  • 1970-01-01
  • 2016-02-19
  • 1970-01-01
  • 2014-07-04
  • 2010-12-02
  • 2014-08-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多