iconv()和utf8_decode()php方法的奇怪行为

时间:2013-07-13 20:18:31

标签: php ajax encoding encode iconv

我有一个测试文本,我发布和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_DECODE:

     

?éá??úöüóé$¤¤÷׸¨¸?¨'~??°'?&gt; *?éá??úöüó$&gt; *ß$÷×÷; $¨?'&gt; $ ?; A

     

ISO8859-2 - &gt; UTF-8:

     

čéáűőúöüó   E $ߤ÷×'〜˘˝°'˛&GT *čéáűőúöüó$&GT * SS $÷×÷; $'&GT; $đ; A

     

UTF-8 - &gt; ISO-8859:

     

ĂĂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ   $ÄÂäÄËÄÂøèøĂÂèĂÂ'〜AAAAAA°ĂÂ'ĂÂ&GT * AAAL   ÄÄÄšÄÄšÂÄĹÄĹÄĹşÄĹ$&GT;节AA $ÄËÄÂÄË; $èĂÂĂÂ'&GT; $ AA;Ĥ

但它是:

  

UTF8_DECODE:

     

?éá??úöüóé$¤¤÷׸¨¸?¨'~??°'?&gt; *?éá??úöüó$&gt; *ß$÷×÷; $¨?'&gt; $ ?; A

     

ISO8859-2 - &gt; UTF-8:

     

ĂĂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ   $ÄÂäÄËÄÂøèøĂÂèĂÂ'〜AAAAAA°ĂÂ'ĂÂ&GT * AAAL   ÄÄÄšÄÄšÂÄĹÄĹÄĹşÄĹ$&GT;节AA $ÄËÄÂÄË; $èĂÂĂÂ'&GT; $ AA;Ĥ

     

UTF-8 - &gt; ISO-8859-2:
  čéáűőúöüó   E $ߤ÷×'〜˘˝°'˛&GT *čéáűőúöüó$&GT * SS $÷×÷; $'&GT; $đ; A

我的问题是为什么?我想念的是什么? 因为我的文本是ISO-8859-2并且我想转移到UTF-8,为什么我需要在以下时间使用相反的方法:

  

string iconv(string $ in_charset,string $ out_charset,string $ str   )

     

in_charset 字符串str 执行字符集转换   到 out_charset

也许ajax请求以UTF-8编码为ISO-8859-2字符?

0 个答案:

没有答案