http://webim.csdn.net/ui/scripts/Csdn/IM/CsdnWebIMMember.js case 1 : alert("\u60a8\u7684\u597d\u53cb\u603b\u4eba\u6570\u5df2\u8fbe\u7cfb\u7edf\u4e0a\u9650\uff01"); break;

解决方案 »

  1.   

    JS有这样的函数
    function run(url,args)
    {
      location.href=url+'?abc='+args;
    }JS文件编码UTF-8   当一个GBK编码的args(上帝)输入文件函数时再发送到servlet中,servlet中显示的args是什么编码?肯定是乱码
    这里好象经过了3步
    1。args--->JS:       GBK的(上帝)变成了UTF-8的(上帝),这个应该没问题,UTF-8兼容GBK
    2。JS--->url:        浏览器显示正常编码后的(上帝)%ER%QW%ER  url是server.xml指定编码 GBK
    3。url--->servlet:   UTF-8的(上帝)变成了GBK的(上帝) request得到的是乱码 因为UTF-8转成了GBK想做个验证,只要把JS的文件编码也变成GBK就能确定原因了,MyEclipse没有指定GBK的选择,UltraEdit也没有转GBK的选择。为什么????梅花雪的
    case 1 : alert("\u60a8\u7684\u597d\u53cb\u603b\u4eba\u6570\u5df2\u8fbe\u7cfb\u7edf\u4e0a\u9650\uff01"); break;可以忽略js编码格式,直接在UTF-8页面上显示汉字。但是这是静态的啊。
    args是不固定了,除非把args(上帝)变成args(\u1234\u5678),这样还要对参数做处理。
      

  2.   

    乱码问题解决了,结论是1。Js文件编码格式对传入的参数没有影响,如果Js文件编码格式是ISO-8859-1,那么该JS文件中是不能有汉字的(MyEclipse不让保存),想有汉字,就用\u8fbe\u7cfb\u7edf\u4e0a。或者你可以把JS文件用UltraEdit转码成UTF-8的编码方式,这时就可以保存汉字了2。不要再使用encodeURI(String args)或者其他方式对url参数进行编码
    只有3个地方声明编码就可以:Jsp:      <%request.setCharacterEncoding ("GBK");%>
                               Servlet:    request.setCharacterEncoding ("GBK");
                               server.xml(tomcat)     URIEncoding="GBK"3。做编码调试最后一条非常重要的地方是每次改变了编码格式,对于浏览器一定要关闭,重新开个新的再调试!!!如果你在原浏览器点击刷新或转到按钮还是原来的乱码效果,但实际上已经是正常的了,你要重开一个才能看出来(这是为什么?难道编码的声明是浏览器级别的??)
      

  3.   

    <%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    <%request.setCharacterEncoding ("GBK");%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>My JSP 'codetest.jsp' starting page</title>
        
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
    <script type="text/javascript" src="search/lala.js"></script>
    <script type="text/javascript">
    function run()
    {
    var e=document.getElementById('a');
    toLink(e.value);
    }
    </script>
      </head>
      <body>
      <div>a:<%=request.getParameter("a")==null?"":request.getParameter("a")%></div>
      <div>b:<%=request.getParameter("b")==null?"":request.getParameter("b")%></div>
      <form action="search/codetest.jsp">
      <input id="a" name="a" type="text" value="" /></br>
      <input type="submit" value="sub" />
      </form>
      <div onclick="run()">link</div>
      </body>
    </html>
    ===============================================
    function toLink(args)
    {
    location.href='codetest.jsp?b='+encodeURI(args);
    }测试文件