2013-03-11 108 views
1

我正在從PHP服務的Android應用程序中加載數據。 在php中,我使用json_encode轉換我的數據。 現在我有一個字符串,其中有一個字符。 json_encode將其轉換爲\u0080,但據我所知,實際的正確unicode應該是\u20AC。 通常這不是問題,但Droid Sans字體只會渲染\u20AC作爲歐元符號。php json_encode適用於Android的歐元符號

我的問題:有沒有辦法讓字符正確轉換(我不在乎如果多數民衆贊成在JavaPHP,但我寧願一個PHP解決方案)使用任何字符串沒有替換或正則表達式等。 替換看起來很難看,可能有更多的符號不能正確轉換,我還不知道。

+0

哪裏你的歐元符號從何而來? 0080聽起來像是來自非UTF8編碼 – 2013-03-11 16:37:56

+0

發佈您的PHP和您的Java代碼。編碼需要在兩個位置都有。 – 323go 2013-03-11 16:38:31

+0

\ u0080會對應一個html實體&#x80 /​​&#128,它是歐元 – 2013-03-11 16:42:18

回答

5

\u0080表示輸入字符是\x80這是歐元符號Windows-1252。所以,我想你的字符串在此charset編碼,那麼你應該把它轉換爲UTF-8,因爲json_encode只能用UTF-8輸入的工作原理:

$string = iconv('Windows-1252', 'UTF-8', $string); 
+0

是的,就是這樣,所以utf8_encode不適用於1252編碼的字符串?因爲我使用它 – x4rf41 2013-03-11 16:49:46

+0

是的,utf8_encode將ISO 8859-1轉換爲UTF-8,僅此而已。 PHP及其特殊功能... ;-) – 2013-03-11 16:51:07