1、页面乱码
页面乱码只需要修改页面的编码即可。
例如:
2、请求参数乱码
参数乱码的解决思想是让所有的请求都统一成同一种编码格式。
以Tomcat为例:
第一步:修改tomcat的server.xml文件中<Connector>的参数URIEncoding为"UTF-8",如果没有该参数,可以添加上
第三步:修改web.xml,为web工程添加上CharacterEncodingFilter过滤器,添加如下代码。
3、Struts国际化的乱码
Struts国际化乱码问题的解决是通过将资源文件的编码转化为Unicode编码来避免乱码的出现。
例如:
native2ascii -encoding UTF-8 ApplicationResources.properties ApplicationResources_zh.properties
注:以上命令的含义是将UTF-8编码的ApplicationResources.properties转换为Unicode编码的ApplicationResources_zh.properties,转换结束后
ApplicationResources_zh.properties文件就是相应的中文资源文件,可以正常的显示中文。
如果是使用Eclipse开发,还有一种更简便的转换方式:
下载ResourceBundleEditor插件,下载地址:http://sourceforge.net/projects/eclipse-rbe/
根据不同的eclipse版本选择相应的ResourceBundleEditor版本下载,下载到的是一个压缩包,解压后将plugins中的文件拷贝到eclipse安装目录中插件所在的文件夹,重新启动
eclipse。
在资源文件上右键open with — ResourceBundle Editor打开ResourceBundle Editor编辑器,点击new properties file新建另一个语言的资源文件,从下拉列表中选择一个地区
create,添加成功后在ResourceBundle Editor中就会多出该资源文件的编辑窗口,相应的在源资源文件的同级目下会出现刚才新建的资源文件。
在ResourceBundle Editor中可以任意修改资源文件中的内容,例如在相应的中文窗口可以随意输入中文,编辑结束后保存即可,ResourceBundle Editor会自动对相应的文件进行转码。
本文作者PoLan,属于转载
页面乱码只需要修改页面的编码即可。
例如:
<%@ page language="java" pageEncoding="utf-8"%>
2、请求参数乱码
参数乱码的解决思想是让所有的请求都统一成同一种编码格式。
以Tomcat为例:
第一步:修改tomcat的server.xml文件中<Connector>的参数URIEncoding为"UTF-8",如果没有该参数,可以添加上
<Connector port="8080" URIEncoding="UTF-8" />
第二步:编写一个过滤器,过滤器代码如下。
package com.pol.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 {
public void destroy() {
}
//CharacterEncodingFilter继承自Filter,在这里只需要实现其doFilter方法即可。
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding("utf-8");//设定编码格式,参数为编码名称
chain.doFilter(request,response);
}
public void init(FilterConfig arg0) throws ServletException {
}
}
第三步:修改web.xml,为web工程添加上CharacterEncodingFilter过滤器,添加如下代码。
<filter>
<filter-name>characterEncodingFilter</filter-name>
<filter-class>com.pol.filter.CharacterEncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern><!-- /*表示对所有路径都进行过滤 -->
</filter-mapping>
3、Struts国际化的乱码
Struts国际化乱码问题的解决是通过将资源文件的编码转化为Unicode编码来避免乱码的出现。
例如:
native2ascii -encoding UTF-8 ApplicationResources.properties ApplicationResources_zh.properties
注:以上命令的含义是将UTF-8编码的ApplicationResources.properties转换为Unicode编码的ApplicationResources_zh.properties,转换结束后
ApplicationResources_zh.properties文件就是相应的中文资源文件,可以正常的显示中文。
如果是使用Eclipse开发,还有一种更简便的转换方式:
下载ResourceBundleEditor插件,下载地址:http://sourceforge.net/projects/eclipse-rbe/
根据不同的eclipse版本选择相应的ResourceBundleEditor版本下载,下载到的是一个压缩包,解压后将plugins中的文件拷贝到eclipse安装目录中插件所在的文件夹,重新启动
eclipse。
在资源文件上右键open with — ResourceBundle Editor打开ResourceBundle Editor编辑器,点击new properties file新建另一个语言的资源文件,从下拉列表中选择一个地区
create,添加成功后在ResourceBundle Editor中就会多出该资源文件的编辑窗口,相应的在源资源文件的同级目下会出现刚才新建的资源文件。
在ResourceBundle Editor中可以任意修改资源文件中的内容,例如在相应的中文窗口可以随意输入中文,编辑结束后保存即可,ResourceBundle Editor会自动对相应的文件进行转码。
本文作者PoLan,属于转载