Java自学者论坛

 找回密码
 立即注册

手机号码,快捷登录

恭喜Java自学者论坛(https://www.javazxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,会员资料板块,购买链接:点击进入购买VIP会员

JAVA高级面试进阶训练营视频教程

Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程Go语言视频零基础入门到精通Java架构师3期(课件+源码)
Java开发全终端实战租房项目视频教程SpringBoot2.X入门到高级使用教程大数据培训第六期全套视频教程深度学习(CNN RNN GAN)算法原理Java亿级流量电商系统视频教程
互联网架构师视频教程年薪50万Spark2.0从入门到精通年薪50万!人工智能学习路线教程年薪50万大数据入门到精通学习路线年薪50万机器学习入门到精通教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程MySQL入门到精通教程
查看: 469|回复: 0

jquery.ajax的url中传递中文乱码问题的解决方法

[复制链接]
  • TA的每日心情
    奋斗
    2024-11-24 15:47
  • 签到天数: 804 天

    [LV.10]以坛为家III

    2053

    主题

    2111

    帖子

    72万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    726782
    发表于 2021-5-18 09:41:09 | 显示全部楼层 |阅读模式

    jquery.ajax的url中传递中文乱码问题的解决方法

     

     

    JQuery

    JQuery默认的contentType:application/x-www-form-urlencoded

    这才是JQuery正在乱码的原因,在未指定字符集的时候,是使用ISO-8859-1

    ISO8859-1,通常叫做Latin-1。Latin-1包括了书写所有西方欧洲语言不可缺少的附加字符。

    JQuery的Ajax根本没有考虑到国际化的问题,使用了欧洲的字符集,所以才引起了传递中文出现乱码的问题。

    而我们的UTF-8则可以解决这一问题。

    最终指需要修改JQuery的代码,显式声明contentType使用utf-8字符集,即可解决GB2312中文传递的问题。

    1. 修改JQuery代码

    只需要简单的将JQuery的代码加以修改,加上charset=UTF-8就可以了,这样不需要改变改什么web.config或什么在页面中改编码什么的了,也不需要用escapc(str)再在服务端解码。英文怎么传递,中文也怎么传递。

    修改用到的jquery文件:jquery-1.4.4.min.js

    ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded;charset=UTF-8",processData:true,async:true,xhr:function(){return new E.XMLHttpRequest}

    2. Js代码:

    如下:

    function confirmcommit(){

     

        var wlCompany = $("#wlCompany").val();//这里含有中文

        var wlId = $("#wlId").val();

        var proposer = $("#proposer").val();

        if(confirm("确认要换货吗")){

    $.ajax({

    type:'POST',

    url:'${pageContext.request.contextPath}/returnGoods/confrimExchangeGoods.do',

    data:'wlCompany='+wlCompany+'&wlId='+wlId+'&proposer='+proposer, //直接传值

    dataType:'text',

    error:function(){

        alert("JQuery AJAX Error!");     

    },

    success:function(msg){

        alert(msg);

        return;

        if(msg=='换货成功'){

     document.location="${pageContext.request.contextPath}/orderItem/queryProduceItem.do?orderBusType="+${orderBusType};

        }

    }

    });

         }

     }


    3 .Java代码:
    代码如下:

    public ActionForward confrimExchangeGoods(ActionMapping mapping,

     

    ActionForm form, HttpServletRequest request,

    HttpServletResponse response) throws Exception {

    log.info("确认换货 confrimExchangeGoods start...............");

    response.setCharacterEncoding("UTF-8"); //这里要设置一下

    String wlCompany = request.getParameter("wlCompany");

    String wlId = request.getParameter("wlId");

    String proposer = request.getParameter("proposer");
         .....
    }

    哎...今天够累的,签到来了1...
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|小黑屋|Java自学者论坛 ( 声明:本站文章及资料整理自互联网,用于Java自学者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2025-1-23 12:18 , Processed in 0.058422 second(s), 27 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表