【问题标题】:Convert UTF-8 to WINDOWS-1258 using PHP使用 PHP 将 UTF-8 转换为 WINDOWS-1258
【发布时间】:2014-08-01 22:19:05
【问题描述】:

我需要使用 PHP 将 UTF-8 字符集转换为 Windows-1252,但到目前为止我运气不佳。我的目标是将文本传输到第 3 方系统并排除任何不在 Windows-1252 字符集中的字符。

我已经尝试过 iconv 和 mb_convert_encoding 但都给出了意想不到的结果。

$text = 'KØBENHAVN Ø ô& üü þþ';
echo iconv("UTF-8", "WINDOWS-1252", $text);
echo mb_convert_encoding($text, "WINDOWS-1252");

两者的输出都是 'K?BENHAVN ? ?&?? ??'

我没想到会有 ?,因为这些字符在 WINDOWS-1252 字符集中。

谁能帮我解释一下这个问题。

【问题讨论】:

  • 您如何在网络浏览器中查看结果?如果是这样,页面的字符集是否设置为windows-1252
  • cOle2 - 我只是在终端中运行它来测试它。 php -r 'echo iconv("UTF-8", "WINDOWS-1252", "KØBENHAVN Ø ô& üü þþ");'

标签: php utf-8 character-encoding


【解决方案1】:

我最终将文本从 UTF-8 运行到 WINDOWS-1252,然后从 WINDOWS-1252 运行到 UTF-8。这给出了期望的输出。

    $text = "Ѭjanky";
    $converted =  iconv("UTF-8//IGNORE", "WINDOWS-1252//IGNORE", $text);
    $converted =  iconv("WINDOWS-1252//IGNORE", "UTF-8//IGNORE", $converted);
    echo $text; // outputs "janky"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-21
    • 2012-08-04
    • 2011-05-15
    • 2013-01-25
    相关资源
    最近更新 更多