• jsp之间传参中文乱码问题


    jsp页面之间传参,传中文会出现乱码问题。

    如下:

    $('.yzjjfa_row').eq(0).append('<a class="yzjjfa_contItem jjfa_active" href="'+ctx+'/plugins/yz/web/views/jjfaDetail.jsp?navId='+msg[0].id+'&navName='+encodeURI(encodeURI(msg[0].name))+'">'
                            +'<span class="yzjjfa_itemImg"><img src="'+ctx+'/'+msg[0].imgPath+'" /></span>'
                            +'<span class="yzjjfa_itemChoose"><img src="'+ctx+'/'+msg[0].imgPathSelected+'" /></span>'
                            +'<h3><p>'+msg[0].name+'</p><span>DIGITAL CAMPUS</span></h3>');

    用encodeURI,

    使用本方法需加上jquery

    页面解码如下:

    <script type="text/javascript">
        var navId="${param.navId}";
        var navName=decodeURI("${param.navName}");
    </script>

    用encodeURI编码,用decodeURI解码

    下面引用本园中的方法:

    转载自:http://www.cnblogs.com/myjavawork/articles/1784748.html

    encodeURI
    
    function verify() {
        //解决中文乱麻问题的方法1,页面端发出的数据作一次encodeURI,
        服务器段使用进行转移成UTF-8;
        //解决中文乱麻问题的方法2,页面端发出的数据作两次encodeURI,
          这个做的好处在于,不管浏览器用户在页面来设置编码,服务器所采用的编码来做一次URLencode转换成UTF-8.
        var url = "AJAXServer?name=" + encodeURI(encodeURI($("#userName").val()));
        url = convertURL(url);
        $.get(url,null,function(data){
            $("#result").html(data);
    });
    }
    
    说明:1 .encodeURL函数主要是来对URI来做转码,它默认是采用的UTF-8的编码.
         2. UTF-8编码的格式:一个汉字来三个字节构成,每一个字节会转换成16进制的编码,同时添加上%号.
    这里要做两次encodeURI的原因以及说明::
    这里要做两次encodeURI的原因以及说明::
    
    具体说明其中具体的原理分析如下,假设页面端输入的中文是一个“中”,按照下面步骤进行解码
    1.第一次encodeURI,按照utf-8方式获取字节数组变成[-28,-72-83],对字节码数组进行遍历,把每个字节转化成对应的16进制数,这样就变成了[E4,B8,AD],最后变成[%E4,%B8,%AD]
    
    2.第二次encodeURI,把数组最后变成[%25E4,%25B8,%25AD]然后就把处理后的数据[%25E4,%25B8,%25AD]发往服务器端,
     当应用服务器调用getParameter方法,getParameter方法会去向应用服务器请求参数
    应用服务器最初获得的就是发送来的[%25E4,%25B8,%25AD],应用服务器会对这个数据进行URLdecode操作,URldecode操作和encodeURL操作是相反的操作,处理结果就是[%E4,%B8,%AD],并把这个值返回给getParameter方法
    
    然后再在服务器端中调用相应的URL转码方法或者是函数  就可以把数据还原成最初页面发送过来的中文“中”了。
  • 相关阅读:
    服务部署 RPC vs RESTful
    模拟浏览器之从 Selenium 到splinter
    windows程序设计 vs2012 新建win32项目
    ubuntu python 安装numpy,scipy.pandas.....
    vmvare 将主机的文件复制到虚拟机系统中 安装WMware tools
    ubuntu 修改root密码
    python 定义类 简单使用
    python 定义函数 两个文件调用函数
    python 定义函数 调用函数
    python windows 安装gensim
  • 原文地址:https://www.cnblogs.com/zrui-xyu/p/5150402.html
Copyright © 2020-2023  润新知