0

関数を使用JSON.stringify()して、PHP に送信する AJAX 用の JS オブジェクトを文字列化します。

この問題は、JSON.stringify 関数が Unicode 文字をフォーマットにエンコードするときに発生します\uxxxx(例: \u000a)。私の質問は、これらの文字を PHP で通常の Unicode 文字に変換する方法です。

4

1 に答える 1

4

出力 UTF-16を参照してください。少し立ち往生

これは UTF-8 に変換されます。

function unescape_utf16($string) {
    /* go for possible surrogate pairs first */
    $string = preg_replace_callback(
        '/\\\\u(D[89ab][0-9a-f]{2})\\\\u(D[c-f][0-9a-f]{2})/i',
        function ($matches) {
            $d = pack("H*", $matches[1].$matches[2]);
            return mb_convert_encoding($d, "UTF-8", "UTF-16BE");
        }, $string);
    /* now the rest */
    $string = preg_replace_callback('/\\\\u([0-9a-f]{4})/i',
        function ($matches) {
            $d = pack("H*", $matches[1]);
            return mb_convert_encoding($d, "UTF-8", "UTF-16BE");
        }, $string);
    return $string;
}
于 2010-08-23T18:36:44.400 に答える