在網(wǎng)上有很多這方面文章,依照上面也解決過,但是修改了mysql的配置文件my.ini.感覺在部署時不是很爽.
就是default-character-set=gbk? ,可以把gbk改成別的。這里給出另一種解決方法(mysql-5.5). :)低版本的mysql似乎沒出現(xiàn)過中文問題
1.添加一個過濾器,將字符集編碼設(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>
新建一個過濾器:
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è)為utf-8.
jsp或servlet中把字符集改為UTF-8.
//要注意當(dāng)你從jsp頁里得到數(shù)據(jù)時不要//String username=new String(request.getParameter("username").getBytes("ISO-8859-1"),"UTF-8");只要
??String username=request.getParameter("username");就可以了!!!!!!!!!!!!
??
4.trying...
posted on 2007-02-05 17:30
EricWong 閱讀(488)
評論(0) 編輯 收藏 所屬分類:
Java