$('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, время: 07:43. |