2011-10-28 54 views
1

的字符utf-8編碼,就像回到..轉換UTF8字符從Facebook圖形API

「\ u676f \ u845b」

如何將其轉換回正常UTF8字符串在PHP?

+0

的可能重複[ PHP \ uXXXX編碼的字符串轉換爲utf-8](http://stackoverflow.com/questions/7894206/php-uxxxx-encoded-string-convert-to-utf-8) – hakre

+0

是的,'json_decode'處理這個。 .. –

回答

0

http://webarto.com/83/php-unicode_decode-5.3 演示:http://ideone.com/AtY0v

function unicode_decode($string) { 

    $string = preg_replace_callback('#\\\\u([0-9a-f]{4})#ism', 
    create_function('$matches', 'return mb_convert_encoding(pack("H*", $matches[1]), "UTF-8", "UCS-2BE");'), 
    $string); 

    return $string; 

} 

echo unicode_decode('\u676f\u845b'); # 杯葛 
1

簡單的方法是你的字符串包裝到雙引號,讓json_decode轉換\u0000逃逸。 (這恰好是JavaScript字符串的語法。)

$str = json_decode("\"$str\""); 

似乎是亞洲字母:杯葛(它已經UTF-8時json_decode返回。)

Source

+0

是的!這實際上是正確的答案。 json解碼包是很好的維護和關心的,一些被複制/粘貼到stackoverflow的函數不是。 – HoldOffHunger