我需要使用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"