【问题标题】:How do I get PHP to accept ISO-8859-1 characters in general?我如何让 PHP 通常接受 ISO-8859-1 字符?
【发布时间】:2011-08-07 13:15:18
【问题描述】:

这一直困扰着我多年,我想一劳永逸地彻底解决这个问题。我有一个关联数组,我使用 ISO-8859-1 字符定义了哪些字段。例如:

array("utført" => "red");

我还有另一个从文件加载的数组。我已经在浏览器中打印了这个数组,检查 Æ、Ø 和 Å 等值是否完好无损。我尝试比较这些数组中的两个字段,但我被消息打了个巴掌:

未定义索引:utfã¸rt 在第 39 行

我忍不住抽泣。每次我在脚本中涉及 UTF-8 之外的任何字母时,它们都会在某个时候转换为 ã¸r 或类似的废话。

我的脚本文件以 ISO-8859-1 编码,我从中加载数据的文档是相同的,我尝试将数据保存到的 MySQL 表也是如此。

所以我能得出的唯一结论是 PHP 不接受任何字符集到它的代码中,我必须以某种方式强制 PHP 说挪威语。

感谢您的任何建议

仅供参考,我不会接受“不要使用这些字符”或“在文件加载时将这些字符替换为 UTF 等效字符”或任何其他黑客解决方案中的任何答案

【问题讨论】:

    标签: php iso-8859-1 utf


    【解决方案1】:

    当您从外部文件读取数据时,请尝试将它们转换为正确的编码。

    我脑子里有这样的事情......

      $f = file_get_contents('externaldata.txt');
      $f = mb_convert_encoding($f, 'iso-8859-1');
      // from this point deal with $f whatever you want
    

    另外,请查看mb_convert_encoding() 手册了解更多信息。

    【讨论】:

    • 我必须先说明我是从 UTF-8 mb_convert_encoding($cell->getValue(), "iso-8859-1", "UTF-8") 转换的,然后它才能工作,但是谢谢!我怀疑 PHPExcel 只以 UTF-8 格式读取数据,而不管文件编码如何
    • 每次我坚持使用不同的编码时,我都会使用此功能。它在几乎所有情况下都有帮助。关于PHPExcel,我不知道,但你可以查看他们的官方文档here
    猜你喜欢
    • 2013-01-19
    • 2010-11-26
    • 1970-01-01
    • 1970-01-01
    • 2015-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多