2013年4月2日火曜日

PHPでサロゲートペアをJSONで扱うときのバグ。(2)

とりあえず、こういう風に修正。
【PEARのJSON.php】
function bin2hexU16($utf16){
 $ret = sprintf('\u%04s', bin2hex($utf16));
 $n = strlen($ret);
 if($n != 10) return $ret;
 return substr($ret,0,6) . '\u' . substr($ret,6);
}
//旧
//$ascii .= sprintf('\u%04s', bin2hex($utf16));
//新
$ascii .= sprintf('%s', $this->bin2hexU16($utf16));

0 件のコメント:

コメントを投稿