ホームページ  >  記事  >  バックエンド開発  >  PHP が中国語のメソッドをエスケープせずに json_decode を実装する方法の紹介

PHP が中国語のメソッドをエスケープせずに json_decode を実装する方法の紹介

巴扎黑
巴扎黑オリジナル
2018-05-22 09:50:272675ブラウズ

この記事では、中国語をエスケープせずに PHP で json_decode を実装する方法を主に紹介し、サンプル フォームと、php5.4 以降および 5.3 バージョンでの中国語をエスケープせずに json_decode を実装するための関連注意事項の詳細な分析を組み合わせています。必要です 参考に

この記事の例では、PHP が中国語をエスケープせずに json_decode を実装する方法を説明します。参考までに皆さんと共有してください。詳細は次のとおりです:

デフォルトでは、PHP の json_decode メソッドは特殊文字をエスケープし、中国語を Unicode エンコード形式に変換します。 Unicode编码形式。

这使得数据库查看文本变得很麻烦。所以我们需要限制对于中文的转义。

对于PHP5.4+版本,json_decode函数第二个参数,可以用来限制转义范围。

要限制中文,使用JSON_UNESCAPED_UNICODE

これにより、データベースでテキストを表示するのが面倒になります。したがって、中国人の逃亡を制限する必要があります。

PHP5.4以降のバージョンでは、json_decode関数の第2パラメータを使用してエスケープ範囲を制限できます。

🎜🎜中国語を制限するには、JSON_UNESCAPED_UNICODE パラメーターを使用します。 🎜
json_encode($a, JSON_UNESCAPED_UNICODE);
🎜🎜🎜 PHP5.3 バージョンの場合、json_decode 関数によるトランスコードを避けるために、まず ASCII 127 より上の文字を HTML 値に変換できます: 🎜🎜🎜
function my_json_encode($arr)
{
    //convmap since 0x80 char codes so it takes all multibyte codes (above ASCII 127). So such characters are being "hidden" from normal json_encoding
    array_walk_recursive($arr, function (&$item, $key) { if (is_string($item)) $item = mb_encode_numericentity($item, array (0x80, 0xffff, 0, 0xffff), 'UTF-8'); });
    return mb_decode_numericentity(json_encode($arr), array (0x80, 0xffff, 0, 0xffff), 'UTF-8');
}

以上がPHP が中国語のメソッドをエスケープせずに json_decode を実装する方法の紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。