【问题标题】:Ajax posting and uppercase special character's encodingAjax 发布和大写特殊字符编码
【发布时间】:2015-07-10 10:58:32
【问题描述】:

我正在使用 jQuery AJAX 发布表单的序列化内容,除了大写特殊字符(如 Ñ 或 Ö)外,它工作正常。

使用测试字符串aÑejÖs我用一个简单的贴出来:

$.ajax({ url: '/ajax/target.php', type: 'post', data: data })

我得到a�ej�s 回来。每次。它适用于相同的小写字符 (ñ, ö)。

我检查了所有内容的编码,都是 utf-8,我还尝试了 urlencoding,使用 html 实体并手动设置 post 编码(为 UTF-8 和 ISO8859-1)。

我还在接收端尝试了一些方法,例如 iconv、utf8_encode、utf8_decode、mb_convert_encoding,可能还有其他一些方法。

有什么想法吗?

【问题讨论】:

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


    【解决方案1】:

    我最终在 JS 端通过跳过序列化和编码字符串两次来解决这个问题:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-09
      • 2015-07-07
      • 2011-12-28
      • 2016-10-19
      相关资源
      最近更新 更多