utf-8的乱码问题怎么解决啊?

dd121011 2008-04-25 11:17:46
我想用utf-8但是显示中文的时候就是乱码
怎么解决啊?
...全文
105 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
nanjg 2008-04-25
  • 打赏
  • 举报
回复


一.在web.xml中配置
xml 代码

1. <filter>
2. <filter-name>EncodingFilter</filter-name>
3. <filter-class>com.kenshin.base.SysFilter</filter-class>
4. <init-param>
5. <param-name>encoding</param-name>
6. <param-value>UTF-8</param-value>
7. </init-param>
8. <init-param>
9. <param-name>enable</param-name>
10. <param-value>true</param-value>
11. </init-param>
12. </filter>
13. <filter-mapping>
14. <filter-name>EncodingFilter</filter-name>
15. <url-pattern>*.do</url-pattern>
16. </filter-mapping>



二.filter类代码
java 代码

1. package com.kenshin.base;
2.
3. import java.io.IOException;
4.
5. import javax.servlet.Filter;
6. import javax.servlet.FilterChain;
7. import javax.servlet.FilterConfig;
8. import javax.servlet.ServletException;
9. import javax.servlet.ServletRequest;
10. import javax.servlet.ServletResponse;
11.
12. import org.apache.commons.logging.Log;
13. import org.apache.commons.logging.LogFactory;
14. import org.hibernate.Session;
15. import org.hibernate.SessionFactory;
16. import org.hibernate.Transaction;
17.
18. public class SysFilter implements Filter {
19. protected String sEncodingName;
20.
21. protected FilterConfig sysFilter;
22.
23. protected boolean bEnable;
24.
25. protected Log logger = LogFactory.getLog(SysFilter.class);
26.
27. public void destroy() {
28.
29. }
30.
31. public void doFilter(ServletRequest arg0, ServletResponse arg1,
32. FilterChain arg2) throws IOException, ServletException {
33. // TODO Auto-generated method stub
34. if (this.bEnable) {
35. try {
36. arg0.setCharacterEncoding(this.sEncodingName);
37. arg1.setContentType("text/html;charset=" + this.sEncodingName);
38. arg1.setCharacterEncoding(this.sEncodingName);
39. arg2.doFilter(arg0, arg1);
40.
41. } catch (Exception e) {
42. logger.info("出错了");
43. }
44. // session.close();
45. } else {
46. arg2.doFilter(arg0, arg1);
47. }
48. }
49.
50. public void init(FilterConfig arg0) throws ServletException {
51. // TODO Auto-generated method stub
52. this.sysFilter = arg0;
53. this.loadFilterSetting();
54. }
55.
56. private void loadFilterSetting() {
57. this.sEncodingName = this.sysFilter.getInitParameter("encoding");
58. logger.info("encoding:" + sEncodingName);
59. String sEnable = this.sysFilter.getInitParameter("enable");
60. if (sEnable != null && sEnable.equalsIgnoreCase("true")) {
61. this.bEnable = true;
62. } else {
63. this.bEnable = false;
64. }
65. }
66.
67.
68. }

dd121011 2008-04-25
  • 打赏
  • 举报
回复
顺便问下
加过滤器都需要做什么操作吗??
Shine_Panda 2008-04-25
  • 打赏
  • 举报
回复
省略号 就是没有 东西.
或者是其他的 servlet与过滤起无关
dd121011 2008-04-25
  • 打赏
  • 举报
回复

3楼哥们省略号代表了什么东西啊?
hrp1027 2008-04-25
  • 打赏
  • 举报
回复
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() {
// TODO Auto-generated method stub

}

public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding("UTF-8");

chain.doFilter(request, response);
}

public void init(FilterConfig config) throws ServletException {
// TODO Auto-generated method stub

}

}


然后在Web.xml中配置一下过滤器的路径即可!
<filter>
<filter-name>setCharacterEncoding </filter-name>
<filter-class>过滤器class路径址</filter-class>
</filter>

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

刚刚学
nanjg 2008-04-25
  • 打赏
  • 举报
回复
http://kenshinlk.javaeye.com/blog/59101

读读这个
nanjg 2008-04-25
  • 打赏
  • 举报
回复
filter 解决
likai22 2008-04-25
  • 打赏
  • 举报
回复
写个过滤器1!!
  • 打赏
  • 举报
回复
建议用filter过滤器。。。。
kathytingzi 2008-04-25
  • 打赏
  • 举报
回复
用拦截器吧,好像可以
nanjg 2008-04-25
  • 打赏
  • 举报
回复
commons-logging-1.0.4.jar
dd121011 2008-04-25
  • 打赏
  • 举报
回复
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<filter>
<filter-name>EncodingFilter</filter-name>
<filter-class>
com.dong.filter.CharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>enable</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>EncodingFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>loginkh1.jsp</welcome-file>
</welcome-file-list>
</web-app>
我按3楼哥们的配置了下。
不好使啊,
还是有乱吗,是不是CharacterEncodingFilter 这个类没有写完啊?
dd121011 2008-04-25
  • 打赏
  • 举报
回复
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
这两个包找不到啊

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧