Как решить эту проблему с кодировкой арабских символов PHP Ajax? - PullRequest
0 голосов
/ 22 сентября 2011

Я разрабатываю веб-сайт с использованием PHP и подключаюсь к базе данных Sybase с помощью функций PHP ODBC.

Существует веб-страница, связанная с Клиентами, для ввода их данных для подтверждения услуги, предоставляемой на веб-сайте.

Я использую Ajax для получения данных клиента из базы данных в случае, если клиент вводит идентификатор, который существует в базе данных, когда я делаю запрос, чтобы получить его данные, такие как номер, имя, номер мобильного телефона, адрес электронной почты, и я объединяю эти данные так, что я делаю это одной строкой, используя символ-разделитель, такой как *, а затем делю строку, используя функцию substr () в файле Javascript, когда работает Ajax и возвращается результат. Я присваиваю значения, возвращенные текстовым полям, отображаемым на веб-странице.

Этот сценарий идеален, даже если в отправляемой записи клиента отсутствуют некоторые данные.

Моя проблема в том, что в базе данных есть два языка для сохраненного в ней текста: английский и арабский. Он отлично подходит для английского языка, но когда данные о клиенте арабские, Javascript действует так, как будто данных вообще нет, или кодирует их в странные символы, которые невозможно прочитать.

Как мне это решить, когда я проверил все вопросы, касающиеся языка и кодировки символов, использования UTF-8 и Windows-1256, а также использования функций преобразования кодировки в файлах PHP и Javascript и проверки самой кодировки файлов.

Обычно я использую Windows-1256 для отображения арабского языка на своих веб-страницах php, как будто я использую UTF-8, арабские динамические данные, поступающие из базы данных, не могут быть отображены должным образом, но арабские статические данные, записанные непосредственно на веб-странице все в порядке.

Любая помощь приветствуется и спасибо заранее .....

1 Ответ

0 голосов
/ 06 июня 2013

Ну

Первый: добавить к началу HTML-страницы

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

второй: если вы используете кодирование данных AJAX с использованием encodeURIComponent

Третье: Первая строка вашей PHP-страницы должна быть

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

и декодировать данные, отправленные в PHP, используя urldecode

также, если вы используете Oracle в качестве базы данных, используйте следующую строку подключения: $ connect = oci_connect ($ UserName, $ Password, $ db_name, 'AL32UTF8')

С уважением,

...