【问题标题】:jQuery post serialize russianjQuery post 序列化俄语
【发布时间】:2013-08-15 14:33:14
【问题描述】:

我正在尝试将数据发布到数据库,并且活动以 6 种语言运行,其中 1 种是俄语,它无法处理西里尔文文本。

DTB 设置为 UTF8,因为上一个活动也使用俄语,但 jQUery 使用那个。

$(document).ready(function ()
{
    $("#form").submit(function ()
    { //Use forms ID
        var str = $(this).serialize();
        $.ajax({
            type: "POST",
            url: "includes/postData.php",
            data: str,
            success: function (msg)
            {
                if (msg == 'OK')
                {
                    //alert('success');
                    $('#thankYou').delay(100).fadeIn(350);
                } else
                {
                    result = msg;
                    console.log(msg);
                }
            }
        });
        return false;
    });
});

我得到的错误是“不正确的字符串值:'\xC3\x91\xC2\x80\xC3\x91...'”

尝试使用

编辑帖子数据
$country = utf8_decode($_POST['country']);

哪些帖子,然后全部?都在 DTB 中。

我如何让 jQuery 正确处理这个帖子毛皮俄语。任何帮助将不胜感激。

【问题讨论】:

  • 尝试查看您的 javascript 文件的编码。我认为它也应该是 UTF8
  • 我认为你根本不需要调用 utf8_decode。
  • 所有文件都是UTF8,仔细检查。
  • 错误来自哪里?如果是 MySQL - 检查您的数据库连接的编码。还要检查 PHP 是否接收到正确的 UTF-8 文本。

标签: jquery mysql ajax cyrillic


【解决方案1】:

经过一些试验、错误、另一个论坛和大量谷歌,我找到了解决方案。 将 decodeURI 包裹在 str 变量周围。

        var str1 = $(this).serialize();
        var str = decodeURI(str1);

这修复了 jQuery 解析到 post 数据的 URI 字符串

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-14
    相关资源
    最近更新 更多