CKEditor / Ajax кодирование / декодирование специальных символов не работает - PullRequest
0 голосов
/ 06 февраля 2011

Я использую CKEditor и набираю текст с помощью специальных символов: «Bâtisseurs passionnés», обратите внимание на французские специальные символы.Затем я использую javascript escape (), чтобы получить входные данные и отправить их через AJAX / JSON в серверный скрипт PHP.

Что касается PHP, то вывод журнала выглядит до и после использования urldecode), похоже, он преобразует части тега

, но специальные символы отображаются только как '?'и хранится как таковой в базе данных.Есть еще один звонок, который я должен использовать?Или специальные символы не включены в urldecode?

$json = json_decode($data);
error_log("URLDecode: before: " . $data);
error_log("URLDecode: after: " . urldecode($data));

, и результат выглядит как

URLDecode: before: %3Cp%3E%0A%09B%E2tisseurs%20passionn%E9s%3C/p%3E%0A
URLDecode: after: <p>
    B?tisseurs passionn?s</p>

1 Ответ

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

escape не соответствует паре для php urldecode .
Используйте encodeURIComponent в JavaScript.

Функции escape и unescape
Функции escape и unescape не работают должным образом для не-ASCII символов и устарели. В JavaScript 1.5 и более поздних версиях используйте encodeURI, decodeURI, encodeURIComponent и decodeURIComponent.

MDC: функции

...