PHP unicode to string

  • 288
  • 0

最近遇到一些怪事 因為 PHP 無法正常解析 unicode 字串

參考 http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html

最近遇到一些怪事 因為 PHP 無法正常解析 unicode 字串

function unicode_to_utf8($unicode_str) {
    $strArr = explode("\u",$unicode_str);
    $unicode_str = "";
    // 後面要補 0 防止 PHP 無法正常解碼
    foreach ( $strArr as $row ) {
        if ( empty($row) ) {
            continue;
        }
        $unicode_str .= "\u" . str_pad($row,4,'0',STR_PAD_LEFT) ."";
    }

    $json = '{"str":"'.$unicode_str.'"}';
    $arr = json_decode($json,true);
    if(empty($arr)) return '';
    return $arr['str'];
}