2010-11-18 2 views
0

Мне нужно обновить поле в базе данных с помощью Ajax и PHP.как закодировать строку в javascript или jquery и декодировать ее с помощью php

Он работает нормально, но когда есть специальные символы, такие как следующие

اللهم اني اشكو اليك ضعف قوتي وقلة حيلتي وهواني علي الناس

Скрипт вставляет нежелательные данные в базу данных.

Я попытался использовать escape() javascript для кодирования URL, он кодирует данные, но когда я его декодирую с помощью PHP, он снова показывает значения нежелательной почты.

+1

Не нужно ничего кодировать, поскольку вы обрабатываете его, как данные UTF-8, от начала до конца. Какова ваша база данных/соединение с базой данных/кодировка приложения/веб-сайта? – deceze

+0

моя база данных mysql, php находится в charset = utf-8 , так как я использую ajax, параметры, которые я передаю, должны поддерживаться url, если я не кодирую строку, она просто игнорирует вызов. И когда я кодирую строку, используя javascript, она отправляет данные через AJAX на страницу обработки PHP. , но когда я пытаюсь декодировать его в оригинальную строку, это не получается правильно декодировано. – dirtycode

+1

некоторый пример для вас, чтобы проверить - http://stackoverflow.com/questions/4143853/utf-8-problem-when-saving-to-mysql/4143922 – ajreal

ответ

1

Вы можете попробовать использовать encodeURIComponent вместо escape, что даст вам что-то вроде этого:

%D8%A7%D9%84%D9%84... 

escape тогда бы выход:

%u0627%u0644%u0644%u0647... 

и Юникода ускользает может сбить с толку кого-то.

+0

спасибо, encodeURIComponent дает мне что-то вроде этого % D8% A7% D9% 84% D9 % 84% D9% 87% D9% 85% 20% D8% A7% D9% 86% D9% 8A .... но как декодировать это в PHP – dirtycode

+0

AFAIK urldecode (http://php.net/manual /en/function.urldecode.php), а затем посмотрите, что вы получаете по-арабски, затем попробуйте поместить арабский в базу данных и посмотреть, что получится. По крайней мере, тогда вы узнаете, кто управляет юникодом. –

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

  • Нет связанных вопросов^_^