zoukankan      html  css  js  c++  java
  • JS.中文乱码,JspServlet端的解决办法

    JS.中文乱码,JspServlet端的解决办法  

    2010-03-08 15:18:21|  分类: Extjs |  标签:encodeuricomponent  乱码  urldecoder  |举报|字号 订阅

     
     

             上一篇文章提到Js的传递中文参数,在Webwork框架下解析出来的是乱码。

              这一篇文章将要提到在Jsp、Servlet端对Js传递中文的解决办法。

              index.jsp

              第一个页面给第二个页面通过URL传递中文参数,两次调用encodeURIComponent()函数来编码:

             

     <a href="http://localhost:8080/web/jsp/Testing.jsp?name="+encodeURIComponent(encodeURIComponent(“测试乱码”))">姓名</a>

              Testing.jsp

               第二个负责接收数据的页面。  解码上面的中文参数:

     <%
       String name = "''";
       if(request.getParameter("name")!=null){
        name = "'"+URLDecoder.decode(request.getParameter("name"),"utf-8")+"'";
       }
      %>

    <script type="text/javascript">
       var name = <%=name%>;
      </script>

                上面的代码就是调用java.net.URLDecoder类来进行解码。由于request.getParameter()方法在调用的时候,java就已经自动将数据解码了一次,所以如果在index.jsp页面中只编码一次的话,在这里就会得到乱码。因此,要使用encodeURIComponent()编码两次,然后URLDecoder+getParameter()再进行两次解码。

                 另外。请注意Testing.jsp页面的红色代码。注意标点符号!由于js中的字符串需要使用单引号来表示,所以如果我们定义java变量的时候,不手动给这个字符串name加上单引号的话,那么在js端就会把它等成其他类型。就会提示“xxx无定义”。因此,请注意。在变量两头都加上单引号:name = "   '  "  +name + "  '  "。这样看应该清晰了吧。

             

  • 相关阅读:
    江の島西浦写真館2-1
    江の島西浦写真館1-2
    Oracle 查询表空间使用情况
    Oracle 的开窗函数 rank,dense_rank,row_number
    oracle11G 用户密码180天修改概要文件过程
    CentOS6 安装 MySQL5.7
    linux下SS 网络命令详解
    CentOS6 网络设置
    redhat 6 红帽6 Linux 网络配置
    Oracle分析函数——函数列表
  • 原文地址:https://www.cnblogs.com/yifenghong/p/3748723.html
Copyright © 2011-2022 走看看