Как получить utf-8
в json_encode
PHP при преобразовании из массива в строку?
Это мой код для test.php
:
<meta content="text/html;charset=UTF-8" http-equiv="Content-Type">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<?PHP
session_start();
include("connect.php");
$word = mysqli_real_escape_string($db_mysqli,$_GET['word']);
$xx = array();
$xx[] = $word;
$xx[] = $word;
$xx_1 = json_encode($xx);
print_r($xx_1);
?>
Когда тестовая нагрузка
example.com/test.php?word=神州
Это шоу
["\u795e\u5dde","\u795e\u5dde"]
Я хочу показать, как это
["神州","神州"]
$xx_1 = json_encode($xx, JSON_UNESCAPED_UNICODE);
print_r($xx_1);.
работает на php5.4 +
На самом деле ["\u795e\u5dde"]
такой же как ["神州"]
, большую часть времени вы json_encode
данные до хранения / передачи данных вокруг и после этого вы должны json_decode
значение и обработать его, json_docode
позаботится о юникодификации. Но приведенный выше код должен дать вам то, что вам нужно.
http://php.net/manual/en/mysqli.set-charset.php
$db_mysqli->set_charset('utf8');