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 + "  '  "。这样看应该清晰了吧。

             

  • 相关阅读:
    2020 Python组蓝桥杯
    Servlet学习
    Tomcat学习
    数据库连接池
    MySQL的设计
    时间复杂度————被list.insert坑了
    PCA 算法核心:高维度向量向低维度投影
    初识Django,了解一下大概流程
    python编程基础之三十八
    python编程基础之三十七
  • 原文地址:https://www.cnblogs.com/yifenghong/p/3748723.html
Copyright © 2011-2022 走看看