[转载]MySQL相关的中文编码错误解决
(2011-02-24 03:06:16)
标签:
转载 |
数据,当遇到提交中文信息的时候,问题总是比较多,我见过的出错的情况有两种:
Hibernate flushing: Could not execute JDBC batch update;
uncategorized SQLException for SQL [insert into blog (comments,
content, createdate, description, tid, title, uid, id) values (?,
?, ?, ?, ?, ?, ?, ?)]; SQL state [HY000]; error code [1366];
Incorrect string value: 'xA1xAAxA1xAAxB0xFC...' for column
'content' at row 1; nested exception is
java.sql.BatchUpdateException: Incorrect string value:
'xA1xAAxA1xAAxB0xFC...' for column 'content' at row 1
====================
1、JSP页面文件的编码:
2、Struts、Spring配置文件(XML)的编码:
3、Hibernate映射文件的编码:
4、数据源配置中jdbcurl(数据库连接)指定的编码:
5、Mysql默认字符集:
# The default character set that will be used when a new schema
or table is
# created and no character set is defined
default-character-set=utf-8
6、数据库表字段的字符集:
级的字符集。
==============问题分析=============
的,因此排除项目中那些与页面文件相关的字符集设置。
查看Mysql默认字符集的相关设置:
+--------------------------+---------------------------------+
|
Variable_name
+--------------------------+---------------------------------+
|
character_set_client
| character_set_connection |
latin1
|
character_set_database
| character_set_filesystem |
binary
| character_set_results
|
character_set_server
| character_set_system
|
character_sets_dir
+--------------------------+---------------------------------+
指定字符集,因此,创建时均使用Mysql默认的latin1字符集,而这个字符集显然根本不可能处理中文字符,
上面的报错信息就是因为它而产生的。
(1) 最简单的修改方法,就是修改Mysql的my.ini文件中的字符集键值,
如
+--------------------------+---------------------------------+
|
Variable_name
+--------------------------+---------------------------------+
|
character_set_client
| character_set_connection |
utf8
| character_set_database
| character_set_filesystem |
binary
| character_set_results
|
character_set_server
|
character_set_system
|
character_sets_dir
+--------------------------+---------------------------------+
修改完成后,我重启了应用,再次提交中文,搞定了!
===================相关文章====================
对Mysql字符集相关知识更详细的介绍请看:
2、GBK、GB2312、UTF8区别,解决MYSQL中文乱码问题