我使用jQuery 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 :(得分:0)
我最后通过跳过序列化并对字符串进行两次编码来解决这个问题:
$(this).find('textarea, input').each(function(a, b) {
data += $(this).attr('name') + '=' + encodeURIComponent(encodeURIComponent($(this).val())) + '&';
});
这样我就可以获得一个可以在PHP中使用的URL编码字符串。