js在浏览器中显示乱码的根本原因就是编码问题,所以解决了编码问题js基本上可以正常显示。
一:利用txt文本另存为设置编码
![](https://i-blog.csdnimg.cn/blog_migrate/5a3a86dfb40174920a14bd2d0c5a061c.png)
这样js文件就设为utf-8编码了。
二:在js的加载代码中添加编码
charset="utf-8"
三:特殊情况,过滤器,一般过滤器很少过滤.js ,.png,.css,对全路径进行过滤时要对文件判断
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException {
// 请求和响应强转为子类类型
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) resp;
String URI = request.getRequestURI() ;
//对css js png 文件进行判断,true则直接放行。
if (URI.contains(".css") || URI.contains(".js") || URI.contains(".png")) {
chain.doFilter(request, response);
return ;
}
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html");
chain.doFilter(request, response);
}
注册过滤器:
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>com.huang.filter.CharacterEncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
过滤器这样处理之后,就不会过滤js,css,问题就解决了