java web乱码解决方法

互联网 19-12-9

设置文件的保存编码格式,这个一般在新建项目时,设置了GBK的编码格式,这时文件的页面编码格式是GBK的,而保存格式是ANSI的,后来把项目及文件的编码格式改为utf-8的编码格式后,依然出现中文乱码,这就是因为已经存在的文件的保存编码格式还是ANSI把致,所以要把以前的.java文件的保存格式更改为utf-8,才不会出现中文注释乱码问题

window-preferences-General-Content Types 在Text下选择对应的文件类型再改页面编码为UTF-8然后点Update就可以了。

如果是一个已经存在的工作间,而原来的编码格式为GBK,那么更改工作空间的编码,则相当于设置了项目,文件的编码格式,但是对于以前已经存在的.java文件,其保存编码是改变不了的,必须按上面(4)去更改,但是对于将要新建的文件的保存编码是有作用的

乱码要检查的几个地方

1.保存的编码

2.jsp里声明的编码(UTF-8和utf8是一样的)

注意:

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>

3.过滤器里处理的字符编码,仅限于输入的输出的数据编码。而上面那句代码中设的编码格式是页面的显示格式。

一份javaweb的项目代码中,总共有这几种格式:

1.代码的保存格式2.浏览器的解析格式3.数据输入时的格式(也就是浏览器的解析格式决定)4.数据处理时的格式。

原则上以上六种格式都要一样,就绝对不会乱码,但有一些特殊情况,其中有一些不一致,显示也会正确,如不需要将输入的内容进行显示和处理时request和respose的格式可以与其他的格式不一致,ps:常用编码ISO-8859-1,gbk,utf-8

package com.helloweenvsfei.filter;   import java.io.IOException;   import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse;   public class CharacterEncodingFilter implements Filter{ 	private String characterEncoding;	 	private boolean enabled;			   	public void destroy() { 		// TODO Auto-generated method stub 		characterEncoding = null;	 	}   	public void doFilter(ServletRequest request, ServletResponse response, 			FilterChain chain) throws IOException, ServletException { 		// TODO Auto-generated method stub 		if(enabled || characterEncoding != null){ 			request.setCharacterEncoding(characterEncoding); 			 			response.setCharacterEncoding(characterEncoding); 			 		} 		chain.doFilter(request, response); 		 		 	}   	public void init(FilterConfig config) throws ServletException { 		// TODO Auto-generated method stub 		 		characterEncoding = config.getInitParameter("characterEncoding"); 		 		enabled = "true".equalsIgnoreCase(config.getInitParameter("enabled").trim()); 		 		 	}   }

web.xml

<filter>   	<filter-name>characterEncodingFilter</filter-name>   	<filter-class>com.helloweenvsfei.filter.CharacterEncodingFilter</filter-class>   	<init-param>   		<param-name>characterEncoding</param-name>   		<param-value>utf8</param-value>   	</init-param>   	<init-param>   		<param-name>enabled</param-name>   		<param-value>true</param-value>   	</init-param>   </filter>      <filter-mapping>   	<filter-name>characterEncodingFilter</filter-name>   	<url-pattern>/*</url-pattern>   </filter-mapping>

更多java知识请关注java基础教程栏目。

以上就是java web乱码解决方法的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: 乱码
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:用phpmyadmin修改密码后登录不上解决方法

相关资讯