Проблема кодирования в AJAX - PullRequest
       2

Проблема кодирования в AJAX

1 голос
/ 28 февраля 2011

Я пытаюсь создать два выпадающих списка в форме.Я создал первый выпадающий список из базы данных MySQL.Когда я выбираю опцию из первого выпадающего списка, мне нужно сгенерировать опции второго выпадающего списка по выбранному значению первого выпадающего списка из базы данных MySQL.Я сделал это с помощью кода по этой ссылке (AJAX)

http://www.w3schools.com/PHP/php_ajax_database.asp

Моя проблема в том, что страницу, вызываемую javascript, невозможно закодировать.Кроме того, я использую арабский язык, поэтому результатом второго выпадающего меню являются бессмысленные фигуры.

Я пробовал разные способы решения проблемы, такие как использование заголовка (..), AJAX.get (..) но никто не работает: (

как я могу решить эту проблему?

Заранее спасибо !! С уважением, Маналкк

Ответы [ 4 ]

0 голосов
/ 01 марта 2011

Браузер интерпретирует его на основе набора символов, указанного в заголовках http.Для этого необходимо, чтобы фактический вывод, который вы отправляете, соответствовал этой кодировке.

С вашей настройкой должно быть верно следующее:

Вы должны извлечь все данные из mysql на соединении, которое указано с правильной кодировкой (SET NAMES "encoding"), по умолчанию используется latin1/ ISO-8859-1

PHP внутренне работает также только с latin1, но любые динамические данные должны быть в порядке, если вы не выполняете много манипуляций со строками, тогда вы можете столкнуться с проблемой.

Если какой-либо контент на вашей php-странице является статическим, вы должны сохранить php-страницу в соответствующей кодировке (например, utf8).

Страница php должна указывать тип содержимого в заголовке:

header ("Content-Type: text / html; charset = utf8");// заменить фактическим типом контента и используемой вами кодировкой.

Ваши данные в базе данных должны храниться соответствующим образом из соединения, которое указало правильную кодировку, в противном случае база данных будетсделать неправильное преобразование в или из базы данных.

0 голосов
/ 28 февраля 2011

Одним из способов является обмен между клиентом и сервером только закодированными сообщениями. Если и запрос, и ответ содержат специальные символы, вы можете сделать:

  • Кодирование ajax-запроса
  • Расшифруйте запрос, сформируйте ответ и закодируйте его перед отправкой
  • Расшифровка ответа на стороне клиента

Я часто использую кодировку base64, чтобы избежать проблем с кодировкой, но вы можете использовать что-нибудь еще.

0 голосов
/ 28 февраля 2011

Попробуйте установить соединение с вашей базой данных;

mysql_query('SET NAMES "utf8"');
0 голосов
/ 28 февраля 2011

на сервере попробуйте использовать utf8_encode ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...