java web乱码解决方法【JAVA教程】,java,乱码

设置文件的保留编码花样,这个平常在新建项目时,设置了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是一样的)
注重:
<%@ 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
因而十拿九稳的要领以下:
Jsp里的声明语句能够弄掉四种花样,而剩下的两种花样能够用监听器的要领处理:
新建一个监听器
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乱码处理要领的细致内容,更多请关注ki4网别的相干文章!