转换UTF8字符从Facebook图形API

转换UTF8字符从Facebook图形API

问题描述:

的字符utf-8编码,就像回到..转换UTF8字符从Facebook图形API

“\ u676f \ u845b”

如何将其转换回正常UTF8字符串在PHP?

+0

的可能重复[ PHP \ uXXXX编码的字符串转换为utf-8](http://*.com/questions/7894206/php-uxxxx-encoded-string-convert-to-utf-8) – hakre

+0

是的,'json_decode'处理这个。 .. –

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'); # 杯葛 

简单的方法是你的字符串包装到双引号,让json_decode转换\u0000逃逸。 (这恰好是JavaScript字符串的语法。)

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

似乎是亚洲字母:杯葛(它已经UTF-8时json_decode返回。)

Source

+0

是的!这实际上是正确的答案。 json解码包是很好的维护和关心的,一些被复制/粘贴到*的函数不是。 – HoldOffHunger