$('form').serialize() и кодировка. Хэлп!!!
Всем доброго времени суток!
Везде utf-8. Есть код формы: var elements = $('form').serialize(); //$('#Name').val() $.post( 'url', { 'tables':al, 'elements': elements }, function(result) { var obj = jQuery.parseJSON(result); if(typeof obj.error != 'undefined'){ // alert (obj.error); $('#system-message').attr('style', 'color:red'); $('#system-message').html(obj.error); }else{ $('#system-message').attr('style', 'color:green'); $('#system-message').html(obj.success); } } ); Так вот проблема в том, что все текстовые значения на русском языке он перекодирует в такую кодировку, раскодировать которою на сервере не получается: echo iconv("ISO-8859-1", "UTF-8", $data["Name"]); echo iconv("UTF-8", "ISO-8859-1", $data["Name"]); echo iconv('UTF-8', 'windows-1251', $data["Name"]); echo iconv('windows-1251', 'UTF-8', $data["Name"]); Убрал serialize и закидываю в массив по каждому элементу вручную - все работает норм!!! Очень странно, потому как везде написано и прописана, что по умолчанию работает c UTF-8. Народ, Хэлп!!!! Что подскажете? Что упустил? |
Это не подойдет для отправки формы? http://jquery.malsup.com/form/
|
Помогло вот это.
var elements = $('form').serializeArray(); Так же работает с $.fn.formToArray, если использовать плагин jquery/form/ |
$.serialize кодирует строку в url-представление
думаю, что в пыхапэ надо ее сначала развернуть через urldecode |
Часовой пояс GMT +3, время: 12:01. |