1

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

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

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

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

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

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

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

感谢您的任何建议

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

4

1 回答 1

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()手册了解更多信息。

于 2011-04-18T03:54:10.753 回答