У меня есть два файла: config.php и add.php Я пытаюсь вставить в базу данные на английском и русском языках.Вставить и извлечь другой язык в базе данных mysql
Код для config.php
<?php
header('Content-Type: text/html; charset=utf-8');
$link = mysql_connect('asd','asd','asd') or die('Cannot connect to the DB');
mysql_select_db('asd',$link) or die('Cannot select the DB');
mysql_query("set character_set 'utf8'");
mysql_set_charset("utf8", $link);
echo mysql_client_encoding($link);
printf("MySQL server version: %s\n", mysql_get_server_info());
?>
Выход за последние 2 строки в конфиг:
utf8
MySQL server version: 5.1.72-rel14.10
С add.php страницы я получаю массив:
Array
(
[0] => Array
(
[message] => Registered
[detail] => Array
(
[id] => 54
[name] => Настройки
)
)
)
Теперь я попытался преобразовать его в JSON
echo json_encode($posts,128);
но я получил вывод как \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438
для имени, сортировка базы данных находится в utf8_general_ci, запись в базе данных в правильной форме, но я не могу получить данные в правильной форме.
Примечание: пожалуйста, игнорируйте SQL, я поменяю его позже.
Это не должно быть проблемой, если функция 'json_encode()' кодирует строку, после прочтения его с 'json_decode()' вы должны получить обратно оригинальный UTF-8 строка, не так ли? – martinstoeckli
@martinstoeckli can u plz показать мне, как это сделать – sammy
Функция json_encode() предназначена для подготовки ответа на запрос Ajax. На клиентской странице вы будете использовать функцию json_decode(), чтобы прочитать ответ Ajax, и впоследствии можете работать с строкой UTF-8. 'json_decode (json_encode ('Настройки'))' должен приводить к '' Настройки''. – martinstoeckli