Когда я печатаю массив с json_encode()
, он не показывает арабские имена пользователей, что я могу сделать, чтобы правильно показать эти имена пользователей?php json_encode() показывает null с арабскими символами
$cnx = mysqli_connect("localhost", "root", "pass", "databasename");
$data = mysqli_query($cnx, "SELECT userid,username FROM user");
$getalluser = array();
while ($row = mysqli_fetch_array($data))
$getalluser[] = array($row[ "username" ],
"http://localhost/test/image.php?u=" . $row[ "userid" ],
$row[ "username" ]);
echo json_encode($getalluser);
И когда я использовал Befor запроса
mysql_query("SET NAMES 'utf8'");
результат показывает, как этот \u00ca\u00c7\u00e3\u00d1
я использую PHP 5.2
раствора в данный момент, использовать iconv()
$users[] = array(iconv('windows-1256', 'utf-8', ($row[ "username" ])),
"http://localhost/386/image.php?u=" . $row[ "userid" ],
iconv('windows-1256', 'utf-8', ($row[ "username" ]);
Используя mysqli вместо mysql, вам нужна строка 'mysqli_set_charset ($ cnx, 'utf8');', а не 'mysql_query (" SET NAMES 'utf8' ");'. – julp
@julp спасибо брату Я использовал 'iconv()' для преобразования результата в 'utf', и он работает очень хорошо – user3745594
Huh, я не понимаю: если вы попросите MySQL вернуть набор результатов в utf8 (это цель mysqli_set_charset), как вам нужно, позади, сделать преобразование в UTF-8 того, что уже должно быть в UTF-8? Во-первых, ваши данные «повреждены» в базе данных? (т. е. НА НАЗВАНИИ отсутствует) – julp