环境:struts+hibernate+mysql4.1.x
以下是我的设置:
1.数据库编码已设置为UTF-8,jndi链接后面加了&useUnicode=true&characterEncoding=utf8
2.struts的过滤器用的默认编码是UTF-8,web.xml设置:
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>com.SetEncodingFilter</filter-class>
<init-param>
<param-name>ignore</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>3.页面上设置<%@ page language="java" pageEncoding="UTF-8" %>
和<meta http-equiv="Content-Type" content="text/html; charset=utf-8">新增之后,数据库表和页面上都是乱码.
我做了一个试验:在插入数据库之前,将从页面传入数据库的乱码字段用中文字代替存入数据库,然后再查询的该字段页面上显示正常,也就是说,从页面传入后台的编码就是错的,但是我不知道该怎么改.
问题困扰我几天了,求各位帮忙!!
先谢了!
以下是我的设置:
1.数据库编码已设置为UTF-8,jndi链接后面加了&useUnicode=true&characterEncoding=utf8
2.struts的过滤器用的默认编码是UTF-8,web.xml设置:
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>com.SetEncodingFilter</filter-class>
<init-param>
<param-name>ignore</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>3.页面上设置<%@ page language="java" pageEncoding="UTF-8" %>
和<meta http-equiv="Content-Type" content="text/html; charset=utf-8">新增之后,数据库表和页面上都是乱码.
我做了一个试验:在插入数据库之前,将从页面传入数据库的乱码字段用中文字代替存入数据库,然后再查询的该字段页面上显示正常,也就是说,从页面传入后台的编码就是错的,但是我不知道该怎么改.
问题困扰我几天了,求各位帮忙!!
先谢了!
解决方案 »
- 用过prefuse的请进!
- extjs问题
- hibernate保存到oracle中文出错
- 在SSH项目的dao中调用save()方法,抛出空指针异常
- 请求ajax后的html流问题
- 求助:有关jsp网站的问题?
- 请教一个文件上传下载的问题
- >>>>>>求助:javax.servlet.ServletRequest.getParameter()问题!在线等待<<<<<<
- eclipse+struts问题,重分感谢!
- 将转义符写入文件?
- 求助:<table width="1300" border="0" cellpadding="0" cellspacing="0">如何取得table的id
- Java开发中关于网页布局的问题
<param-name>encoding</param-name>
<param-value>GB13080</param-value>
</init-param>
ss = new String(ss.getBytes("ISO-8859-1"),"UTF-8");
这个可以,但是为什么呢?我的页面上已经设置为UTF-8了,怎么还需要转换呢?如果这样,页面上不是不需要设置了?
<%@ page contentType ="text/html;charset=gb2312" %>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> xml:
<param-value>gb2312</param-value>
<param-name>encoding</param-name>
<param-value>GB13080</param-value>
</init-param>
那换成
<init-param>
<param-name>encoding</param-name>
<param-value>GB2312</param-value>
</init-param>
这样呢,别的地方不用改,因为有可能提交过来的数据,在表单里输入的数据只能是用gb2312编码的,所以分析请求的时候不能按utf-8方式来分析