情况是这样的 j2ee项目里一个js文件和jsp文件  编码格式都是UTF-8 然后文件保存的格式也是UTF-8 
刚运行test()的时候中文是乱码的 然后点test2()还是乱码,再返回前一个页面运行test()和test2()就正常了(另外尝试了下从这个页面调用一个action跳转到另一个页面,返回后变正常了); 
刷新后 再运行test()又是乱码了 然后重复test2()或调用action到另一个页面 返回又正常了 
感觉好诡异啊 在网上找过很多资料 另外我把js文件和jsp文件复制到另一个新建的web项目里调用test()和test2()没出现乱码  这是什么情况??第一次上csdn问问题 望各位大大快来解答啊~~ } 
function test() { 
alert("乱码") 

function test2() { 
document.write("乱码"); 

解决方案 »

  1.   


    <meta http-equiv="content-type" content="text/html;charset=utf-8" />
      

  2.   


    诶 试过没用的说 在jsp的头上已经定义过charset为utf-8了 而且加上这句后也试过 还是一样的情况 要是他一直乱码或者一直正常我还可以接受 这么诡异的 很囧 
      

  3.   

    那就不太清楚了,没接触过JSP
      

  4.   

    你最上面是不是有这样一句话<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
    将这句话改成下面的三行格式 试试 
    <%@ CODEPAGE=65001%> 
    <%Response.CodePage=65001%> 
    <%Response.Charset="UTF-8"%> 
      

  5.   

    不是vbscript呀  JAVASCRIPT <script type="text/javascript" src="....."> 这个没问题的吧。不过话说回来 我直接在jsp页面上写alert(“乱码”)都正常的 估计哪里格式有问题 不过我能想到编码要统一的地方都改了呀 而且我把两个文件复制到另一个工程里运行都正常的 悲剧。。
      

  6.   

    我的意思是 你有没有类似 这样的一段话 改了它 
    改成这样的三行 就好了 我给他们改过很多次了
    <%@ CODEPAGE=65001%> 
    <%Response.CodePage=65001%> 
    <%Response.Charset="UTF-8"%>
      

  7.   

    应该不是浏览器的原因 因为我我js和jsp复制到另一个工程里运行都正常的额
      

  8.   

    谢谢各位了 我已经搞定了 虽然不知道为啥乱码 但是我写了个filter 在里面写了response.setCharacterEncoding("utf-8");就好了 虽然到现在也不明白jsp页面里加上<meta http-equiv="content-type" content="text/html;charset=utf-8" />
    还有最头上的<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>会没用。