`
haofeng82
  • 浏览: 140720 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

JAVA WEB 程序乱码问题解决

阅读更多

以 mysql为例:

1 首先是数据库的编码问题,尽量让数据库的编码和程序的编码一致起来,推荐utf-8

 这又分为jdbc部分的编码设置:

  a 需要指定connection url为:jdbc:mysql://localhost/dms?characterEncoding=UTF-8,注意编码部分

  b 设置数据库结构的编码

2 增加字符编码过滤器(filter):

  web.xml的配置:

   <filter>
    <filter-name>Encoding</filter-name>
    <filter-class>com.hf.servlet.filter.CharacterEncodingFilter</filter-class>
    <init-param>
      <param-name>encoding</param-name>
      <param-value>utf-8</param-value>
    </init-param>
  </filter>

<filter-mapping>
    <filter-name>Encoding</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>


package com.hf.servlet.filter;

import java.io.IOException;

import javax.servlet.*;

public class CharacterEncodingFilter implements Filter {

// default character encoding
String defaultEncoding = "UTF-8";

public void init(FilterConfig config) throws ServletException {
String encoding = config.getInitParameter("encoding");
if (encoding != null) {
defaultEncoding = encoding;
}
}

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding(defaultEncoding);
chain.doFilter(request, response);
}

public void destroy() {
defaultEncoding = null;
}

}

3更改jsp文件编码

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>

<HTML>
<HEAD>

<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">

</HEAD>

处理好这三部分就应该差不多啦

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics