使用PHP将UTF-8转换为WINDOWS-1258


Convert UTF-8 to WINDOWS-1258 using PHP

我需要使用PHP将UTF-8字符集转换为Windows-1252,到目前为止我还没有多少运气。我的目标是将文本传输到第三方系统,并排除任何不在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字符集中。

有谁能帮我解释一下吗?

我最终将文本从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"