欢迎光临
我们一直在努力

java web乱码解决方法

java web乱码解决方法插图

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

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

注:

如果是一个全新的工作空间,设置Myeclipse的编码格式,就等于设置了项目,文件及其保存的编码格式了(不包含jsp等文件)

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

乱码要检查的几个地方

1.保存的编码

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

注意:


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

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

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

java web乱码解决方法插图(1)

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

因此万无一失的办法如下:

Jsp里的声明语句可以弄掉四种格式,而剩下的两种格式可以用监听器的方法解决:

新建一个监听器

java web乱码解决方法插图(2)

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


  	characterEncodingFilter
  	com.helloweenvsfei.filter.CharacterEncodingFilter
  	
  		characterEncoding
  		utf8
  	
  	
  		enabled
  		true
  	
  
  
  
  	characterEncodingFilter
  	/*
  

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

赞(0) 捐助本站
未经允许不得转载:爱分享 » java web乱码解决方法

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

爱分享,永远免费的PDF电子书、知识、技术等资源的共享交流网站

爱分享精选好货商城爱分享淘宝内购优惠券

所有捐助用于升级服务器和寻找资源,以便更好的服务大家

支付宝扫一扫打赏

微信扫一扫打赏