解决JSP中文字符乱码问题

  作者:bea

在使用JSP的过程中,最使人头疼的一个问题就是中文乱码问题。 JSP页面乱码,这种乱码的原因是应为没有在页面里指定使用的字符集编码,解决方法:只要在页面开始地方用下面代码指定字符集编码即可 一下是二种解决JSP页面中文乱码问题的二种方案,共大家参考。 解决JSP页面中文乱码方案一: 这种方法是普遍适用的方法,加一个过滤器,之后就可以过上一劳永逸的日子了 package filters; import java.io.IOException; im
在使用JSP的过程中,最使人头疼的一个问题就是中文乱码问题。
JSP页面乱码,这种乱码的原因是应为没有在页面里指定使用的字符集编码,解决方法:只要在页面开始地方用下面代码指定字符集编码即可
一下是二种解决JSP页面中文乱码问题的二种方案,共大家参考。

解决JSP页面中文乱码方案一:
这种方法是普遍适用的方法,加一个过滤器,之后就可以过上一劳永逸的日子了
package filters;
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;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
public class TomcatFormFilter implements Filter {
/**
* Request.java
* 对 HttpServletRequestWrapper 进行扩充, 不影响原来的功能并能提供所
有的 HttpServletRequest
* 接口中的功能. 它可以统一的对 Tomcat 默认设置下的中文问题进行解决而只
需要用新的 Request 对象替换页面中的
* request 对象即可.
*/
class Request extends HttpServletRequestWrapper
{
public Request(HttpServletRequest request) {
super(request);
}
/**
* 转换由表单读取的数据的内码.
* 从 ISO 字符转到 GBK.
*/
public String toChi(String input) {
try {
byte[] bytes = input.getBytes("ISO8859-1");
return new String(bytes, "GBK");
}
catch (Exception ex) {
}
return null;
}
/**
* Return the HttpServletRequest holded by this object.
*/
private HttpServletRequest getHttpServletRequest()
{
return (HttpServletRequest)super.getRequest();
}
/**
* 读取参数 -- 修正了中文问题.
*/
public String getParameter(String name)
{
return
toChi(getHttpServletRequest().getParameter(name));
}
/**
* 读取参数列表 - 修正了中文问题.
*/
public String[] getParameterValues(String name)
{
String values[] =
getHttpServletRequest().getParameterValues(name);
if (values != null) {
for (int i = 0; i
解决JSP页面中文乱码方案二:
为程序编写一个字符串处理函数,用一个静态文件保存,在需要处理中文字符的JSP页面中包含它

要转换时只需:coedeToString(request.getParameter(..));就可以了,很好用的。 有用  |  无用

猜你喜欢