中文字符无法插入数据库

时间:2021-11-11 00:53:59
在mysql终端可以自行插入一条中文信息;
但是在客户端浏览器中输入中文后台出现异常,异常如下:

org.springframework.jdbc.UncategorizedSQLException: Hibernate operation: could not insert: [com.uisf.entity.UisfEmp]; uncategorized SQLException for SQL [insert into alex.uisf_emp (name, emp_no, dept) values (?, ?, ?)]; SQL state [HY000]; error code [1366]; Incorrect string value: '\xC2\x98\xC3\xA5\xC2\xAE...' for column 'name' at row 1; nested exception is java.sql.SQLException: Incorrect string value: '\xC2\x98\xC3\xA5\xC2\xAE...' for column 'name' at row 1

Caused by: java.sql.SQLException: Incorrect string value: '\xC2\x98\xC3\xA5\xC2\xAE...' for column 'name' at row 1

安装数据库设置的编码是utf8;
spring配置hiebernate的配置文件中也设置了utf8格式:
<bean id="dataSource" 
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" 
value="com.mysql.jdbc.Driver">
</property>
<property name="url" 
value="jdbc:mysql://localhost:3306/alex?useUnicode=true&amp;characterEncoding=utf-8">
</property>
<property name="username" value="root">
</property>
<property name="password" value="love0824">
</property>
</bean>;
在struts.xml中也设置了utf8的格式:
<constant name="struts.i18n.encoding" value="utf-8"></constant>

这个问题怎么解决啊;
楼主很急啊!

24 个解决方案

#1


用了spring没有
用了在web.xml里面加上
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>

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

#2


用了,在web.xml中也添加了这个过滤器;
程序中:

<!-- 编码过滤器start -->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>com.uisf.util.EncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- end -->
public void doFilter(ServletRequest req, ServletResponse resp,
FilterChain chain) throws IOException, ServletException {
req.setCharacterEncoding("UTF-8");
resp.setCharacterEncoding("UTF-8");
HttpServletResponse response = (HttpServletResponse) resp;
response.setHeader("Cache-Control", "no-store");
response.setHeader("Pragrma", "no-cache");
response.setDateHeader("Expires", 0);
chain.doFilter(req, resp);
System.out.println("調用編碼過濾器");
}

很费解。。。

#3


debug调试吧 看是参数传递到后台乱码 还是后台存入数据库乱码
你的参数怎么变成这个了\xC2\x98\xC3\xA5\xC2\xAE...?

#4


debug试过了;
接受到的参数是乱码;
乱码的字符长度超出了3就插不进去;
但不清楚是哪块出的问题

#5


引用 4 楼 u012089246 的回复:
debug试过了;
接受到的参数是乱码;
乱码的字符长度超出了3就插不进去;
但不清楚是哪块出的问题

既然是这样,原因可能是:
1 你的前台页面是不是utf-8编码?
2 你的struts配置的编码不正确,或者不是utf-8
3 还有一种可能,你的数据库编码不是utf-8

#6


ajax提交的话,客户端两次编码encodeURI,服务器端一次解码decodeURI
form 提交的话,做一个过滤器将ServletRequest的编码设为utf-8:

        

        
@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
         request.setCharacterEncoding("utf-8");
         response.setContentType("text/html, charset=utf-8");
         response.setCharacterEncoding("utf-8");
        chain.doFilter(request, response);
}

#7


有一个编码的过滤器;
form提交,从表单接收到的是乱码;
现在就是这个问题,为什么会是乱码

#8


引用 7 楼 u012089246 的回复:
有一个编码的过滤器;
form提交,从表单接收到的是乱码;
现在就是这个问题,为什么会是乱码


表单页面是什么编码?是不是utf-8?

#9


引用 8 楼 cangaa 的回复:
Quote: 引用 7 楼 u012089246 的回复:

有一个编码的过滤器;
form提交,从表单接收到的是乱码;
现在就是这个问题,为什么会是乱码


表单页面是什么编码?是不是utf-8?

是utf-8

#10


引用 9 楼 u012089246 的回复:
Quote: 引用 8 楼 cangaa 的回复:

Quote: 引用 7 楼 u012089246 的回复:

有一个编码的过滤器;
form提交,从表单接收到的是乱码;
现在就是这个问题,为什么会是乱码


表单页面是什么编码?是不是utf-8?

是utf-8


如果form不是post方式提交  改用post方式提交

#11


改成这个试试:
<!--解决Form提交乱码问题  -->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>
org.springframework.web.filter.CharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

#12


引用 楼主 u012089246 的回复:
在mysql终端可以自行插入一条中文信息;
但是在客户端浏览器中输入中文后台出现异常,异常如下:

org.springframework.jdbc.UncategorizedSQLException: Hibernate operation: could not insert: [com.uisf.entity.UisfEmp]; uncategorized SQLException for SQL [insert into alex.uisf_emp (name, emp_no, dept) values (?, ?, ?)]; SQL state [HY000]; error code [1366]; Incorrect string value: '\xC2\x98\xC3\xA5\xC2\xAE...' for column 'name' at row 1; nested exception is java.sql.SQLException: Incorrect string value: '\xC2\x98\xC3\xA5\xC2\xAE...' for column 'name' at row 1

Caused by: java.sql.SQLException: Incorrect string value: '\xC2\x98\xC3\xA5\xC2\xAE...' for column 'name' at row 1

安装数据库设置的编码是utf8;
spring配置hiebernate的配置文件中也设置了utf8格式:
<bean id="dataSource" 
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" 
value="com.mysql.jdbc.Driver">
</property>
<property name="url" 
value="jdbc:mysql://localhost:3306/alex?useUnicode=true&amp;characterEncoding=utf-8">
</property>
<property name="username" value="root">
</property>
<property name="password" value="love0824">
</property>
</bean>;
在struts.xml中也设置了utf8的格式:
<constant name="struts.i18n.encoding" value="utf-8"></constant>

这个问题怎么解决啊;
楼主很急啊!
这个问题根本原因不是无法插入,是你后台接收到的中文没有转码导致字符串超长(超过了表中字段的长度),你先将字符串转成中文再插入就好了

#13


引用 11 楼 jackwumengfeng 的回复:
改成这个试试:
<!--解决Form提交乱码问题  -->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>
org.springframework.web.filter.CharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

用您这方法
表单接收到的参数不是乱码了
但是为什么插入到数据库的还是乱码

#14


先用httpwatch看下传输过去的参数,是不是已经乱码了(是乱码的话,JSP页面的编码不对)。然后在后台debug时,也看下是不是乱码(是乱码的话,filter不起作用。把filter放到struts2的filter之前)。最后数据库是乱码的话,就是数据库的问题了

#15



UisfEmp emp=new UisfEmp();
emp.setName(name);
emp.setEmpNo(empNo);
emp.setDept(dept);
System.out.println("获取到的name参数"+emp.getName());
empservice.saveEmp(emp);
此处输出的name不是乱码
但是还是报这个异常:
org.springframework.jdbc.UncategorizedSQLException: Hibernate operation: could not insert: [com.uisf.entity.UisfEmp]; uncategorized SQLException for SQL [insert into alex.uisf_emp (name, emp_no, dept) values (?, ?, ?)]; SQL state [HY000]; error code [1366]; Incorrect string value: '\xE6\xBD\x98\xE5\xAE\x81' for column 'name' at row 1; nested exception is java.sql.SQLException: Incorrect string value: '\xE6\xBD\x98\xE5\xAE\x81' for column 'name' at row 1

#16


引用 14 楼 ltp2010 的回复:
先用httpwatch看下传输过去的参数,是不是已经乱码了(是乱码的话,JSP页面的编码不对)。然后在后台debug时,也看下是不是乱码(是乱码的话,filter不起作用。把filter放到struts2的filter之前)。最后数据库是乱码的话,就是数据库的问题了

您说的是很精辟
我这边数据库没问题,可以在终端插入中文的数据
换了个过滤器之后,过滤器起作用了
从表单接收到的参数不是乱码
但是插入到数据库的却是乱码

#17


引用 16 楼 u012089246 的回复:
Quote: 引用 14 楼 ltp2010 的回复:

先用httpwatch看下传输过去的参数,是不是已经乱码了(是乱码的话,JSP页面的编码不对)。然后在后台debug时,也看下是不是乱码(是乱码的话,filter不起作用。把filter放到struts2的filter之前)。最后数据库是乱码的话,就是数据库的问题了

您说的是很精辟
我这边数据库没问题,可以在终端插入中文的数据
换了个过滤器之后,过滤器起作用了
从表单接收到的参数不是乱码
但是插入到数据库的却是乱码


你能在终端插入中文的数据,不代表你的数据库是utf8编码
看一下数据库编码吧,插入到数据库是乱码基本是数据库编码的问题了

#18


正常吧,数据库什么字符集

#19


引用 17 楼 cangaa 的回复:
Quote: 引用 16 楼 u012089246 的回复:

Quote: 引用 14 楼 ltp2010 的回复:

先用httpwatch看下传输过去的参数,是不是已经乱码了(是乱码的话,JSP页面的编码不对)。然后在后台debug时,也看下是不是乱码(是乱码的话,filter不起作用。把filter放到struts2的filter之前)。最后数据库是乱码的话,就是数据库的问题了

您说的是很精辟
我这边数据库没问题,可以在终端插入中文的数据
换了个过滤器之后,过滤器起作用了
从表单接收到的参数不是乱码
但是插入到数据库的却是乱码


你能在终端插入中文的数据,不代表你的数据库是utf8编码
看一下数据库编码吧,插入到数据库是乱码基本是数据库编码的问题了

我安装数据库的时候设置的确实是utf-8

#20


引用 19 楼 u012089246 的回复:
Quote: 引用 17 楼 cangaa 的回复:

Quote: 引用 16 楼 u012089246 的回复:

Quote: 引用 14 楼 ltp2010 的回复:

先用httpwatch看下传输过去的参数,是不是已经乱码了(是乱码的话,JSP页面的编码不对)。然后在后台debug时,也看下是不是乱码(是乱码的话,filter不起作用。把filter放到struts2的filter之前)。最后数据库是乱码的话,就是数据库的问题了

您说的是很精辟
我这边数据库没问题,可以在终端插入中文的数据
换了个过滤器之后,过滤器起作用了
从表单接收到的参数不是乱码
但是插入到数据库的却是乱码


你能在终端插入中文的数据,不代表你的数据库是utf8编码
看一下数据库编码吧,插入到数据库是乱码基本是数据库编码的问题了

我安装数据库的时候设置的确实是utf-8


这可难说了,mysql在编码方面是非常坑爹的,最好完全重新设置一遍

#21


引用 16 楼 u012089246 的回复:
Quote: 引用 14 楼 ltp2010 的回复:

先用httpwatch看下传输过去的参数,是不是已经乱码了(是乱码的话,JSP页面的编码不对)。然后在后台debug时,也看下是不是乱码(是乱码的话,filter不起作用。把filter放到struts2的filter之前)。最后数据库是乱码的话,就是数据库的问题了

您说的是很精辟
我这边数据库没问题,可以在终端插入中文的数据
换了个过滤器之后,过滤器起作用了
从表单接收到的参数不是乱码
但是插入到数据库的却是乱码
楼主,我再说个更精辟的: 















给分啊!!!!

#22


引用 21 楼 ltp2010 的回复:
Quote: 引用 16 楼 u012089246 的回复:

Quote: 引用 14 楼 ltp2010 的回复:

先用httpwatch看下传输过去的参数,是不是已经乱码了(是乱码的话,JSP页面的编码不对)。然后在后台debug时,也看下是不是乱码(是乱码的话,filter不起作用。把filter放到struts2的filter之前)。最后数据库是乱码的话,就是数据库的问题了

您说的是很精辟
我这边数据库没问题,可以在终端插入中文的数据
换了个过滤器之后,过滤器起作用了
从表单接收到的参数不是乱码
但是插入到数据库的却是乱码
楼主,我再说个更精辟的: 















给分啊!!!!
。。分给错了啊 不好意思。。

#23


要看数据库是什么字符集。

#24


汉字被转成unicode了,把它转回来不就完了 中文字符无法插入数据库

#1


用了spring没有
用了在web.xml里面加上
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>

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

#2


用了,在web.xml中也添加了这个过滤器;
程序中:

<!-- 编码过滤器start -->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>com.uisf.util.EncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- end -->
public void doFilter(ServletRequest req, ServletResponse resp,
FilterChain chain) throws IOException, ServletException {
req.setCharacterEncoding("UTF-8");
resp.setCharacterEncoding("UTF-8");
HttpServletResponse response = (HttpServletResponse) resp;
response.setHeader("Cache-Control", "no-store");
response.setHeader("Pragrma", "no-cache");
response.setDateHeader("Expires", 0);
chain.doFilter(req, resp);
System.out.println("調用編碼過濾器");
}

很费解。。。

#3


debug调试吧 看是参数传递到后台乱码 还是后台存入数据库乱码
你的参数怎么变成这个了\xC2\x98\xC3\xA5\xC2\xAE...?

#4


debug试过了;
接受到的参数是乱码;
乱码的字符长度超出了3就插不进去;
但不清楚是哪块出的问题

#5


引用 4 楼 u012089246 的回复:
debug试过了;
接受到的参数是乱码;
乱码的字符长度超出了3就插不进去;
但不清楚是哪块出的问题

既然是这样,原因可能是:
1 你的前台页面是不是utf-8编码?
2 你的struts配置的编码不正确,或者不是utf-8
3 还有一种可能,你的数据库编码不是utf-8

#6


ajax提交的话,客户端两次编码encodeURI,服务器端一次解码decodeURI
form 提交的话,做一个过滤器将ServletRequest的编码设为utf-8:

        

        
@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
         request.setCharacterEncoding("utf-8");
         response.setContentType("text/html, charset=utf-8");
         response.setCharacterEncoding("utf-8");
        chain.doFilter(request, response);
}

#7


有一个编码的过滤器;
form提交,从表单接收到的是乱码;
现在就是这个问题,为什么会是乱码

#8


引用 7 楼 u012089246 的回复:
有一个编码的过滤器;
form提交,从表单接收到的是乱码;
现在就是这个问题,为什么会是乱码


表单页面是什么编码?是不是utf-8?

#9


引用 8 楼 cangaa 的回复:
Quote: 引用 7 楼 u012089246 的回复:

有一个编码的过滤器;
form提交,从表单接收到的是乱码;
现在就是这个问题,为什么会是乱码


表单页面是什么编码?是不是utf-8?

是utf-8

#10


引用 9 楼 u012089246 的回复:
Quote: 引用 8 楼 cangaa 的回复:

Quote: 引用 7 楼 u012089246 的回复:

有一个编码的过滤器;
form提交,从表单接收到的是乱码;
现在就是这个问题,为什么会是乱码


表单页面是什么编码?是不是utf-8?

是utf-8


如果form不是post方式提交  改用post方式提交

#11


改成这个试试:
<!--解决Form提交乱码问题  -->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>
org.springframework.web.filter.CharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

#12


引用 楼主 u012089246 的回复:
在mysql终端可以自行插入一条中文信息;
但是在客户端浏览器中输入中文后台出现异常,异常如下:

org.springframework.jdbc.UncategorizedSQLException: Hibernate operation: could not insert: [com.uisf.entity.UisfEmp]; uncategorized SQLException for SQL [insert into alex.uisf_emp (name, emp_no, dept) values (?, ?, ?)]; SQL state [HY000]; error code [1366]; Incorrect string value: '\xC2\x98\xC3\xA5\xC2\xAE...' for column 'name' at row 1; nested exception is java.sql.SQLException: Incorrect string value: '\xC2\x98\xC3\xA5\xC2\xAE...' for column 'name' at row 1

Caused by: java.sql.SQLException: Incorrect string value: '\xC2\x98\xC3\xA5\xC2\xAE...' for column 'name' at row 1

安装数据库设置的编码是utf8;
spring配置hiebernate的配置文件中也设置了utf8格式:
<bean id="dataSource" 
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" 
value="com.mysql.jdbc.Driver">
</property>
<property name="url" 
value="jdbc:mysql://localhost:3306/alex?useUnicode=true&amp;characterEncoding=utf-8">
</property>
<property name="username" value="root">
</property>
<property name="password" value="love0824">
</property>
</bean>;
在struts.xml中也设置了utf8的格式:
<constant name="struts.i18n.encoding" value="utf-8"></constant>

这个问题怎么解决啊;
楼主很急啊!
这个问题根本原因不是无法插入,是你后台接收到的中文没有转码导致字符串超长(超过了表中字段的长度),你先将字符串转成中文再插入就好了

#13


引用 11 楼 jackwumengfeng 的回复:
改成这个试试:
<!--解决Form提交乱码问题  -->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>
org.springframework.web.filter.CharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

用您这方法
表单接收到的参数不是乱码了
但是为什么插入到数据库的还是乱码

#14


先用httpwatch看下传输过去的参数,是不是已经乱码了(是乱码的话,JSP页面的编码不对)。然后在后台debug时,也看下是不是乱码(是乱码的话,filter不起作用。把filter放到struts2的filter之前)。最后数据库是乱码的话,就是数据库的问题了

#15



UisfEmp emp=new UisfEmp();
emp.setName(name);
emp.setEmpNo(empNo);
emp.setDept(dept);
System.out.println("获取到的name参数"+emp.getName());
empservice.saveEmp(emp);
此处输出的name不是乱码
但是还是报这个异常:
org.springframework.jdbc.UncategorizedSQLException: Hibernate operation: could not insert: [com.uisf.entity.UisfEmp]; uncategorized SQLException for SQL [insert into alex.uisf_emp (name, emp_no, dept) values (?, ?, ?)]; SQL state [HY000]; error code [1366]; Incorrect string value: '\xE6\xBD\x98\xE5\xAE\x81' for column 'name' at row 1; nested exception is java.sql.SQLException: Incorrect string value: '\xE6\xBD\x98\xE5\xAE\x81' for column 'name' at row 1

#16


引用 14 楼 ltp2010 的回复:
先用httpwatch看下传输过去的参数,是不是已经乱码了(是乱码的话,JSP页面的编码不对)。然后在后台debug时,也看下是不是乱码(是乱码的话,filter不起作用。把filter放到struts2的filter之前)。最后数据库是乱码的话,就是数据库的问题了

您说的是很精辟
我这边数据库没问题,可以在终端插入中文的数据
换了个过滤器之后,过滤器起作用了
从表单接收到的参数不是乱码
但是插入到数据库的却是乱码

#17


引用 16 楼 u012089246 的回复:
Quote: 引用 14 楼 ltp2010 的回复:

先用httpwatch看下传输过去的参数,是不是已经乱码了(是乱码的话,JSP页面的编码不对)。然后在后台debug时,也看下是不是乱码(是乱码的话,filter不起作用。把filter放到struts2的filter之前)。最后数据库是乱码的话,就是数据库的问题了

您说的是很精辟
我这边数据库没问题,可以在终端插入中文的数据
换了个过滤器之后,过滤器起作用了
从表单接收到的参数不是乱码
但是插入到数据库的却是乱码


你能在终端插入中文的数据,不代表你的数据库是utf8编码
看一下数据库编码吧,插入到数据库是乱码基本是数据库编码的问题了

#18


正常吧,数据库什么字符集

#19


引用 17 楼 cangaa 的回复:
Quote: 引用 16 楼 u012089246 的回复:

Quote: 引用 14 楼 ltp2010 的回复:

先用httpwatch看下传输过去的参数,是不是已经乱码了(是乱码的话,JSP页面的编码不对)。然后在后台debug时,也看下是不是乱码(是乱码的话,filter不起作用。把filter放到struts2的filter之前)。最后数据库是乱码的话,就是数据库的问题了

您说的是很精辟
我这边数据库没问题,可以在终端插入中文的数据
换了个过滤器之后,过滤器起作用了
从表单接收到的参数不是乱码
但是插入到数据库的却是乱码


你能在终端插入中文的数据,不代表你的数据库是utf8编码
看一下数据库编码吧,插入到数据库是乱码基本是数据库编码的问题了

我安装数据库的时候设置的确实是utf-8

#20


引用 19 楼 u012089246 的回复:
Quote: 引用 17 楼 cangaa 的回复:

Quote: 引用 16 楼 u012089246 的回复:

Quote: 引用 14 楼 ltp2010 的回复:

先用httpwatch看下传输过去的参数,是不是已经乱码了(是乱码的话,JSP页面的编码不对)。然后在后台debug时,也看下是不是乱码(是乱码的话,filter不起作用。把filter放到struts2的filter之前)。最后数据库是乱码的话,就是数据库的问题了

您说的是很精辟
我这边数据库没问题,可以在终端插入中文的数据
换了个过滤器之后,过滤器起作用了
从表单接收到的参数不是乱码
但是插入到数据库的却是乱码


你能在终端插入中文的数据,不代表你的数据库是utf8编码
看一下数据库编码吧,插入到数据库是乱码基本是数据库编码的问题了

我安装数据库的时候设置的确实是utf-8


这可难说了,mysql在编码方面是非常坑爹的,最好完全重新设置一遍

#21


引用 16 楼 u012089246 的回复:
Quote: 引用 14 楼 ltp2010 的回复:

先用httpwatch看下传输过去的参数,是不是已经乱码了(是乱码的话,JSP页面的编码不对)。然后在后台debug时,也看下是不是乱码(是乱码的话,filter不起作用。把filter放到struts2的filter之前)。最后数据库是乱码的话,就是数据库的问题了

您说的是很精辟
我这边数据库没问题,可以在终端插入中文的数据
换了个过滤器之后,过滤器起作用了
从表单接收到的参数不是乱码
但是插入到数据库的却是乱码
楼主,我再说个更精辟的: 















给分啊!!!!

#22


引用 21 楼 ltp2010 的回复:
Quote: 引用 16 楼 u012089246 的回复:

Quote: 引用 14 楼 ltp2010 的回复:

先用httpwatch看下传输过去的参数,是不是已经乱码了(是乱码的话,JSP页面的编码不对)。然后在后台debug时,也看下是不是乱码(是乱码的话,filter不起作用。把filter放到struts2的filter之前)。最后数据库是乱码的话,就是数据库的问题了

您说的是很精辟
我这边数据库没问题,可以在终端插入中文的数据
换了个过滤器之后,过滤器起作用了
从表单接收到的参数不是乱码
但是插入到数据库的却是乱码
楼主,我再说个更精辟的: 















给分啊!!!!
。。分给错了啊 不好意思。。

#23


要看数据库是什么字符集。

#24


汉字被转成unicode了,把它转回来不就完了 中文字符无法插入数据库