2015-02-26 3 views
2

У меня есть два файла: 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, я поменяю его позже.

+0

Это не должно быть проблемой, если функция 'json_encode()' кодирует строку, после прочтения его с 'json_decode()' вы должны получить обратно оригинальный UTF-8 строка, не так ли? – martinstoeckli

+0

@martinstoeckli can u plz показать мне, как это сделать – sammy

+0

Функция json_encode() предназначена для подготовки ответа на запрос Ajax. На клиентской странице вы будете использовать функцию json_decode(), чтобы прочитать ответ Ajax, и впоследствии можете работать с строкой UTF-8. 'json_decode (json_encode ('Настройки'))' должен приводить к '' Настройки''. – martinstoeckli

ответ

1

Вы можете попробовать:

echo json_encode($posts, JSON_UNESCAPED_UNICODE); 
+0

Я пробовал это, но получил сообщение об ошибке: Warning: json_encode() ожидает, что параметр 2 длинный, строка задана – sammy

+0

Требуется PHP 5.4.0 – Bang

+0

мой сервер говорит, что он содержит версию PHP 5.5.21 CGI – sammy

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