在網(wǎng)上有很多這方面文章,依照上面也解決過,但是修改了mysql的配置文件my.ini.感覺在部署時(shí)不是很爽.
這里給出另一種解決方法(mysql-4.1.11).低版本的mysql似乎沒出現(xiàn)過中文問題(mysql-4.0.17). :)
1.添加一個(gè)過濾器,將字符集編碼設(shè)為UTF-8.
修改web.xml:
<filter>
<filter-name>SetCharacterEncoding</filter-name>
<filter-class>hxz.filter.SetEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>SetCharacterEncoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
新建一個(gè)過濾器:
package hxz.filter;
import java.io.IOException;
import javax.servlet.*;
public class SetEncodingFilter 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;
}
}
2.修改hibernate配置文件:
<property name="url">
<value>jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8</value>
</property>
注意后面的:useUnicode=true&characterEncoding=UTF-8, 在xml中&要改為;amp;
3.在新版本中mysql建表時(shí),你可以選擇一種字符集,將它設(shè)為utf-8.
jsp或servlet中把字符集改為UTF-8.
4.trying...