次のコード シーケンスがあります。
// characters U-00000080 - U-000007FF, mask 110XXXXX
$char= pack('C*', $ord_v, ord($string{$c + 1}));
$c += 1;
$utf16= mb_convert_encoding($char, 'UTF-16', 'UTF-8');
$ret .= sprintf('\u%04s', bin2hex($utf16));
このコードは、json.org の json エンコード関数の一部です。同じことを達成するための同等のiconv変換は何ですか? iconv('UTF-8', 'UTF-16', $char); を試しました。しかし、iconv は LE フラグ バイトを挿入し (推測します)、対処方法がわかりません。
よろしく、アレックス