2016-07-29 2 views
0

Когда я печатаю массив с 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" ]); 
+0

Используя mysqli вместо mysql, вам нужна строка 'mysqli_set_charset ($ cnx, 'utf8');', а не 'mysql_query (" SET NAMES 'utf8' ");'. – julp

+0

@julp спасибо брату Я использовал 'iconv()' для преобразования результата в 'utf', и он работает очень хорошо – user3745594

+0

Huh, я не понимаю: если вы попросите MySQL вернуть набор результатов в utf8 (это цель mysqli_set_charset), как вам нужно, позади, сделать преобразование в UTF-8 того, что уже должно быть в UTF-8? Во-первых, ваши данные «повреждены» в базе данных? (т. е. НА НАЗВАНИИ отсутствует) – julp

ответ

0

попытка изменения в вас базе данных в консоли:

ALTER TABLE 'user' MODIFY 'username' VARCHAR(32) CHARACTER SET utf8; 

в VARCHAR() устанавливает пользовательскую длину символов.

тогда в вас PHP в самом начале всего:

header('Content-Type: text/html; charset=utf-8'); 

Это должно работать.

+0

спасибо брату, но я не хочу редактировать или конвертировать любую таблицу в моей базе данных, я хочу, чтобы решение или редактировалось только в php-коде – user3745594

+0

пользовательская таблица 'utf8_general_ci' – user3745594

+0

, если вы думаете проблема JSON, ответ - нет. JSON ничего не меняет, все зависит от кодировки файла как utf8 и т. Д. – nikomaster

Смежные вопросы