【问题标题】:utf-8 decoding problem in phpphp中的utf-8解码问题
【发布时间】:2009-08-20 20:17:47
【问题描述】:

我得到一个 .vcf 文件,其中部分编码为 UTF-8:

CATEGORIES;CHARSET=UTF-8:Straße & –dienste

现在“–”应该是“-”并且“Straße”应该转换为“Straße”。

我试过了

  • utf8_decode()
  • iconv()
  • mb_convert_encoding()

并且一直在使用几种输出编码选项,例如

  • header('content-type: text/html; charset=utf-8');
  • mb_internal_encoding('UTF-8');
  • mb_http_output( "UTF-8" );

但我没有得到想要的结果 - 而是:“StraÃ?e & â??dienste

有人从我的大脑中解出那个结吗?非常感谢。

【问题讨论】:

    标签: php unicode utf-8 decode


    【解决方案1】:

    已解决。

    我必须将 PHP 文件转换回 ISO-8859-1(而不是 UTF-8)。

    认为这不会有什么不同,但确实如此!

    【讨论】:

    • 您是否尝试过 utf8_encode() 输入,因为 PHP 假设它不是读取它,因此未编码输入上的 utf8_decode() 是无用的。
    • 我在使用真正支持 UTF-8 编辑的文本编辑器时运气不佳。他们通常会采用操作系统使用的任何代码页(ISO-8859-1 = 美国/西欧的默认值)。
    【解决方案2】:

    你可能真的想试试 utf8_encode()。从 MySQL 检索 UTF-8 编码信息并将其显示在 UTF-8 HTML 页面上时,我遇到了类似的问题。

    【讨论】:

      【解决方案3】:

      忘了说:没有 MySQL...

      普通 php ;-)

      echo "Straße & –dienste";

      echo utf8_decode("Straße & –dienste");

      应该以某种方式变成“Straße & -dienste”...但不会,不会,不会

      【讨论】:

        【解决方案4】:

        我没有给你答案,因为我不确定我是否完全理解你想要做什么(阅读 PHP 中的 .vcf 文件?)....

        但有一个线索:“Straße”是用 UTF-8 编码的“Straße”,但随后被解释为 Latin1(或 Windows-1252)。

        【讨论】:

          猜你喜欢
          • 2010-11-26
          • 1970-01-01
          • 1970-01-01
          • 2018-06-06
          • 2018-06-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多