`
lihongyang66
  • 浏览: 73779 次
  • 性别: Icon_minigender_1
  • 来自: 石家庄
社区版块
存档分类
最新评论

gbk编码下ajax提交乱码的解决

阅读更多

本来想整个项目都用GBK编码应该不会出现乱码的,但是不明白jquery为啥不能修改编码,只能用utf-8. 提交过去就是乱码,正当编码流程我想是这样的:

ajax(utf-8)-->编码过滤器(GBK)-->Action中显示为乱码

 

起初的解决办法:

在Action中先用GBK进行编码然后在用UTF-8解码

 

感觉没有问题啊,结果偶数个没有问题正常显示,奇数还是出现乱码。很是奇怪。

 

查了很多资料加上我的思考得出的结果:

UTF-8编码3个字节表示,而GBK用俩个字节表示,解码的时候偶数个汉字总能够在GBK中找到别的字和这个码匹配所有这个字节码值没有发生变化,奇数个汉字是奇数乘以奇数还是奇数所有会剩一个字节没有办法在GBK中找到字匹配,GBK就用?代替了这个字节码的值,所有出现乱码。

 

目前的解决办法:

http://www.wsria.cn/archives/611

修改jquery源码,对参数再次编码,也就是对参数进行了两次编码,提交到服务器后自动进行了一次解码,然后再手动用utf-8进行解码,从而避免了乱码。

也许是本人比较愚钝想了半天才想明白。

 

分享到:
评论
1 楼 xzs603 2017-07-19  
哈哈,解决方法一样。

相关推荐

    GBK编码下jQuery_Ajax中文乱码解决方案

    GBK编码下jQuery_Ajax中文乱码解决方案

    jquery的ajax编码乱码解决方案

    简单整理的乱码处理方案,jquery的ajax解决UTF-8以及GBK的问题

    ajax乱码解决汇总

    ajax乱码解决总结 第一,javascript沿用java的字符处理方式,内部是使用unicode来处理所有字符的, 第二,utf-8是每个汉字(unicode字符)用3个字节来存储。 第三,用utf-8来send数据是不会出现乱码的,是后台程序...

    js实现GBK编码,避免默认utf-8编码

    前端页面通过ajax发送请求,参数都是默认使用utf-8编码格式对参数进行url编码,这样的后果就是,当后台页面如果使用gbk编码的话,会出现乱码的情况,然后网上找到一个大神写的gbk.js. 但是里面没有做出详细介绍,这里...

    使用AJAX实现UTF8编码表单提交到GBK编码脚本无乱码的解决方法

    主要介绍了用AJAX实现,多个不同编码的项目(GBK,UTF8)互相通过 POST/GET 汇总表单数据。最终实现 使用同一个页面接收 不同编码的 表单(GBK,UTF8),特别适合 JS 采集项目,需要的朋友可以参考下

    AJAX在Post中文的时候解决乱码的方法

    用AJAX来GET回一个页面时,RESPONSETEXT里面的中文多半会出现乱码,这是因为xmlhttp在处理返回的responseText的时候,是把resposeBody按UTF-8编码进解码考形成的,如果服务器送出的确实是UTF-8的数据流的时候汉字会...

    PHP Ajax中文乱码问题解决方法

    是因为XMLHttp在处理返回的responstText的时候把responstBody按UTF-8编码进行解码的,如果服务器端送出的数据流的确是UTF-8编码,那么中文字就会正确显示,但如果是GBK或是其他编码则会出现上述情况。 解决的办法是...

    escape --AJAX和JS传中文乱码的最终解决方案

    这个是解决AJAX和JS传中文乱码的最终解决方案 如果你在用AJAX和JS过程中遇到这个问题就可以这样解决 不管你是什么GBK 或者UTF-8或者其他的编码,放上这个代码都是可以解决的

    ajax提交到servelt获取参数有乱码的解决方法

    解决这个方向(servlet——javascript)的中文乱码问题很简单。只需要在 servlet中,添加一个 编码设置: 代码如下: response.setContentType(“text/html;charset=UTF-8”); 而且JSP页面编码方式可以随意设定,GBK...

    JQuery AJAX 中文乱码问题解决

     提交和接收均为utf-8或gbk编码  对提交的数据调用JQuery函数encodeURI进行编码再提交或显示或链接既可  url = encodeURI(url); //url为数据。  注:注意浏览器和发布的项目的缓存问题,很多时候会影响解决。 ...

    AJAX在Post中文的时候乱码的解决方法

    用AJAX来GET回一个页面时,RESPONSETEXT里面的中文多半会出现乱码,这是因为xmlhttp在处理返回的responseText的时候,是把resposeBody按UTF-8编码进解码考形成的,如果服务器送出的确实是UTF-8的数据流的时候汉字会...

    解决JS请求服务器gbk文件乱码的问题

    JS获取服务器编码格式为gb2312的文件时内容为乱码,ajax网络请求内部使用的是XMLHttpRequest,所以在请求之前需要设置一下编码格式,但是设置xhr.setRequestHeader(“accept”, “text/csv;charset=gb2312,*/*”);...

    服务器数据库编码格式问题解决方案

    发现是数据库编码格式问题,网站使用的编码格式为UTF8,数据库的编码格式调为了UTF8,但是character_set_server的值还是gbk。 查看数据库编码: 在mysql命令行里面输入:show variables like ‘character%’; 所以...

    php Ajax乱码

    告诉网页这个实现的编码是UTF-8 然后把要输出的内容用$test = iconv(‘gbk’, ‘utf-8′, $test);转一下编码 然后在输出 大家有兴趣可以看看 <?php header(”content-type:text/html; charset=utf-8″); ...

    php+ajax实现无刷新数据分页的办法

    //输出编码,避免中文乱码 ?> <html> <head> <title>ajax分页演示</title> [removed][removed] <link rel="stylesheet" type="text/css" href="page.css"> </head> <body&...

    Discuz! X1.5.1 简体GBK R20111221.zip

    FIX 设置主题标签,utf-8编码时的乱码bug FIX 去掉'wmode', 'transparent'属性,在IE9下面会造成没有办法输入文字的问题 FIX 修复QQ互联用户登录覆盖发帖同步设置的bug FIX 群组发帖审核时间段不受全局限制 FIX ...

    全一快递的插件 for ECSHOP.rar

    里面有gbk和utf-8两个版本,把各自放到相应的目录就行,如果后台提示Ajax object doen's exist's 或乱码说明是编码问题!

    ecshop 全一快递插件.rar

    看到网上很多朋友在找这个插件就共享一下 里面有gbk和utf-8两个版本,把各自放到相应的目录就行,如果后台提示Ajax object doen's exist's 或乱码说明是编码问题!

    XML轻松学习手册--XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解

    1.可以验证数字签名,使在线商务的提交动作(submission)有效。 2.可以被方便的建立索引和进行更有效搜索。 3.可以在不同语言之间传输数据。 W3C组织正在研究一种名为RDF(Resource Description Framework)的...

Global site tag (gtag.js) - Google Analytics