186

さまざまな言語を扱う PHP スクリプトがあります。残念ながら、 を使用しようとするjson_encodeと、Unicode 出力は常に 16 進数のエンティティに変換されます。これは予想される動作ですか?出力を UTF-8 文字に変換する方法はありますか?

これが私が見ているものの例です:

入力

echo $text;

出力

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

入力

json_encode($text);

出力

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

8 に答える 8

433

PHP/5.4.0 以降、 というオプションがありますJSON_UNESCAPED_UNICODE。見てみな:

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

したがって、次のことを試してください。

json_encode( $text, JSON_UNESCAPED_UNICODE );
于 2013-05-11T14:46:11.190 に答える
1
json_encode($text, JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES);
于 2019-04-02T17:30:52.687 に答える
-6

これは予想される動作ですか?

これはjson_encode()、UTF-8 でエンコードされたデータでのみ機能します。

ここで変換するための答えを得ることができるかもしれません: cyrillic-characters-in-phps-json-encode

于 2013-05-11T15:33:20.317 に答える