2015-04-30 3 views
2

Я отправляю сериализованное содержимое формы с помощью jQuery AJAX и отлично работает, за исключением специальных символов верхнего регистра, таких как С или ....Кодировка специального символа Ajax и кодировка специального символа верхнего регистра

Используя тестовую строку aÑejÖs я отправляю его с помощью простой:

$.ajax({ url: '/ajax/target.php', type: 'post', data: data })

и я получаю a�ej�s обратно. Каждый раз. Он отлично работает с теми же символами в нижнем регистре (ñ, ö).

Я проверил кодировки всего, и все это utf-8, я также попробовал urlencoding, используя html-сущности и вручную установив пост-кодировку (в UTF-8 и ISO8859-1).

Я также пробовал несколько вещей на принимающей стороне, таких как iconv, utf8_encode, utf8_decode, mb_convert_encoding и, возможно, некоторые другие.

Любые идеи?

ответ

0

я в конечном итоге фиксируя это на стороне JS, пропуская сериализации и кодирующая строку дважды:

$(this).find('textarea, input').each(function(a, b) { data += $(this).attr('name') + '=' + encodeURIComponent(encodeURIComponent($(this).val())) + '&'; });

Таким образом я получаю строку URLencoded я могу работать в PHP.

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