【问题标题】:character decoding failed. value corrupted字符解码失败。值损坏
【发布时间】:2017-09-21 10:43:03
【问题描述】:

这是我的 ajax 调用:

function callServer()
{
    alert('before : ' +uncompressed64Data.length);
    var compressed = LZString.compressToUTF16(uncompressed64Data);
    alert('after : ' +compressed.length);

    debugger;
    jQuery.ajax({
        url : "/RegisterServlet_2/servlet/Register",
        type : "POST",
        data: "img="+compressed,
        cache : false,
        async : false,
        success : function()
        {

        },
        error : function()
        {
        }
    });

}

我在尝试接收错误时收到以下错误:

字符解码失败。参数 [img] 的值为 [Ả㠵堥ä?¢æ¡¥Æ´Û?à â¤¡á?®ã? ä??à©?má¹?â?¤â° â?]已被忽略。请注意,此处引用的名称和值可能由于解码失败而损坏。使用调试级别日志记录查看原始的、未损坏的值。

仅供参考, 1.我提到了html文件utf8的头部 2.server.xml提到

URIEncoding="UTF-8"

3.服务器端提到,

request.setCharacterEncoding("utf-8");

请注意,我不需要任何编码,我只想获取我发送的数据。

提前致谢。

【问题讨论】:

    标签: javascript java jquery ajax urlencode


    【解决方案1】:

    我认为是Content-Type引起的问题,jquery默认使用application/x-www-form-urlencoded; charset=UTF-8。尝试将其设置为text/plainmultipart/form-data。这里是documentation

    【讨论】:

    • 可能问题是您像 UTF16 一样压缩它,但服务器需要您在标头中指定的 UTF8。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-26
    • 2017-07-12
    • 1970-01-01
    • 1970-01-01
    • 2011-07-13
    • 2010-09-12
    相关资源
    最近更新 更多