我有一个测试文本,我使用 ajax 调用(JQuery)发布:
čéáűőúöüó é$ߤ÷׸¨¸˝¨´~˘˝°´˛>*čéáűőúöüó$>*ß$÷×÷;$¨˝´>$đ;ä
我只是在回复中写了相同的文字
<?php
$text=$_POST["text"];
echo "\n\nUTF8_DECODE:\n";
echo utf8_decode($text);
echo "\nISO8859-2 -> UTF-8:\n";
echo iconv("ISO-8859-2","UTF-8",$text);
echo "\nUTF-8 -> ISO-8859-2 \n";
echo iconv("UTF-8","ISO-8859-2",$text);
?>
结果应该是:
UTF8_解码:
?éá??úöüó é$ߤ÷׸¨¸?¨´~??°´?>*?éá??úöüó$>*ß$÷×÷;$¨?´>$?;ä
ISO8859-2 -> UTF-8:
čéáűőúöüó é$ߤ÷׸¨¸˝¨´~˘˝°´˛>*čéáűőúöüó$>*ß$÷×÷;$¨˝´>$đ;ä
UTF-8 -> ISO-8859:
€ĺäääšäšäšääĺäĺşäĺäĺ$ $ $€€¤ääëäëäëâäR出了讯〜
但它是:
UTF8_解码:
?éá??úöüó é$ߤ÷׸¨¸?¨´~??°´?>*?éá??úöüó$>*ß$÷×÷;$¨?´>$?;ä
ISO8859-2 -> UTF-8:
€ĺäääšäšäšääĺäĺşäĺäĺ$ $ $€€¤ääëäëäëâäR出了讯〜
UTF-8 -> ISO-8859-2:
čéáűőúöüó é$ߤ÷׸¨¸˝¨´~˘˝°´˛>*čéáűőúöüó$>*ß$÷×÷;$¨˝´>$đ;一个
我的问题是为什么会这样??我想念什么?因为我的文本是 ISO-8859-2 并且我想传输到 UTF-8,为什么我需要在以下情况下使用相反的方法:
字符串 iconv ( 字符串 $in_charset , 字符串 $out_charset , 字符串 $str )
对字符串 str执行从in_charset 到out_charset的字符集转换。
也许以 UTF-8 编码的 ajax 请求是 ISO-8859-2 字符?