1. ホーム
  2. php

[解決済み] PHP の json_encode 関数は、なぜ UTF-8 文字列を 16 進数の実体に変換するのですか?

2022-04-20 12:25:23

質問

様々な言語を扱うPHPスクリプトを持っています。残念ながら json_encode ユニコード出力はすべて16進数に変換されます。これは期待された動作なのでしょうか?出力をUTF-8文字に変換する方法はあるのでしょうか?

以下はその例です。

入力

echo $text;

OUTPUT

База данни грешка.

INPUT

json_encode($text);

OUTPUT

"\u0411\u0430\u0437\u0430 \u0434\u0430\u043d\u043d\u0438 \u0433\u0440\u0435\u0448\u043a\u0430."

解決方法は?

PHP/5.4.0以降では、PHPのオプションとして JSON_UNESCAPED_UNICODE . 調べてみてください。

https://php.net/function.json-encode

したがって、あなたは試してみるべきです。

json_encode( $text, JSON_UNESCAPED_UNICODE );