Ajax发布和大写特殊字符的编码

时间:2015-04-30 16:16:56

标签: php ajax utf-8 character-encoding special-characters

我使用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,以及其他一些内容。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我最后通过跳过序列化并对字符串进行两次编码来解决这个问题:

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

这样我就可以获得一个可以在PHP中使用的URL编码字符串。