Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   $('form').serialize() и кодировка. Хэлп!!! (https://javascript.ru/forum/dom-window/23432-%24-%27form%27-serialize-i-kodirovka-khehlp.html)

lexnext1 23.11.2011 13:24

$('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.
Народ, Хэлп!!!! Что подскажете? Что упустил?

Serg_pnz 23.11.2011 13:51

Это не подойдет для отправки формы? http://jquery.malsup.com/form/

lexnext1 23.11.2011 15:10

Помогло вот это.
var elements = $('form').serializeArray();

Так же работает с
$.fn.formToArray, если использовать плагин jquery/form/

irezvov 24.11.2011 22:48

$.serialize кодирует строку в url-представление
думаю, что в пыхапэ надо ее сначала развернуть через urldecode


Часовой пояс GMT +3, время: 09:38.