to be number two
2016-01-30 14:41
采纳率: 50%
浏览 2.3k
已采纳

jsp网页中的js 显示中文乱码,在MyEclipse 里面显示的正常

index.jsp 页面 调用 外面的 .js 文件 中文显示乱码,看了好多都说是 网页编码 不一致造成的

<script type="text/javascript" src="webstyle/js/script.js" charset="GB2312"></script>

但是 我在Index.jsp页面调用的时候 加上 charset="GB2312" 了,这样做还是不可以,网页的编码都统一设置的 UTF-8, 另外 我是通过过滤器 设置网页请求编码的
代码如下


        HttpServletRequest servletRequest = (HttpServletRequest) request;
        response.setContentType("text/html;charset=utf-8");
        // 获得用户请求的URI
        String path = servletRequest.getRequestURI();
        if (path.indexOf("script.js") > -1) {//用户请求js文件时
            request.setCharacterEncoding("GB2312");
            System.out.println("设置了 js的编码");
            chain.doFilter(request, response);
            return;
        } else {
            // 设置编码方式
            request.setCharacterEncoding("utf-8");
            chain.doFilter(request, response);
            return;
        }

问下是不是过滤器的原因,导致现在 网页中的 js特效提示框 中文都乱码,该如何解决

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

6条回答 默认 最新

  • Mic168 2016-02-02 03:12
    已采纳

    新建一个文本文件,把js文件copy一份到记事本,另存为utf-8编码格式的js,然后去换掉原来的js文件试试

    已采纳该答案
    打赏 评论
  • threenewbee 2016-01-30 16:10

    charset="GB2312" 了
    UTF-8
    这两者本来就是矛盾的

    request.setCharacterEncoding("GB2312");这里应该也用UTF8

    打赏 评论
  • 新IT民工 2016-01-31 00:28

    无论哪种编码,统一就好

    打赏 评论
  • 依据你js文件存储编码来决定,如果js是ansi,对应charset=gb2312,utf-8则是charset=utf-8

    如果jsp meta的charset和上面一致,script不需要添加charset属性,如果不一样需要添加charset制定js文件编码防止乱码,如jsp meta utf-8,js存储为ansi,需要给script指定charset="gb2312"

    打赏 评论
  • lorcx935200 2016-01-31 15:00

    浏览器也有编码 你设置的什么啊

    打赏 评论
  • to be number two 2016-02-21 11:38

    谢谢大家,已经解决了,原因就是新建的js文件结构就不是UTF-8,只要统一就好了。

    打赏 评论