WEB开发常见乱码解决方法

1、页面乱码
页面乱码只需要修改页面的编码即可。
例如:
<%@ 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,属于转载
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值