本文地址:http://www.dutycode.com/post-5.html

除非注明,文章均为 www.dutycode.com 原创,欢迎转载!转载请注明本文地址,谢谢。

错误详情如上图:

原因主要是:字符集的问题

解决办法,将数据库、数据表以及数据表中的字段全部统一设置成utf8即可。

参考文章:

1、http://www.oseye.net/question/74

2、http://www.cnblogs.com/shishm/articles/1614407.html

3、http://tree-161219.iteye.com/blog/745054

在一个用Struts + Spring+ Hibernate +

Mysql架构的的项目里,通过前台表单向后台MySql数据库添加

数据,当遇到提交中文信息的时候,问题总是比较多,我见过的出错的情况有两种:

1)错误情况1:

ERROR

1366 (HY000): Incorrect string value

Incorrect string value:

'\xA1\xAA\xA1\xAA\xB0\xFC...' for column 'content' at row 1 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: '\xA1\xAA\xA1\xAA\xB0\xFC...' for column 'content' at

row 1; nested exception is java.sql.BatchUpdateException: Incorrect string

value: '\xA1\xAA\xA1\xAA\xB0\xFC...' for column 'content' at row 1

2)错误情况2:

提交时不报错,但是数据库中插入的中文显示为如“???”的乱码,同时在控制台打印的也是“???”的乱码字符。

因此涉及到中文字符的问题时,要格外注意“字符集编码”的问题。

====================

总结一下,在这样一个项目里,涉及到设置字符集的地方有:

1、JSP页面文件的编码:

pageEncoding="utf-8"%>

2、Struts、Spring配置文件(XML)的编码:

version="1.0" encoding="utf-8"?>

3、Hibernate映射文件的编码:

version="1.0" encoding="utf-8"?>

4、数据源配置中jdbcurl(数据库连接)指定的编码:

如果在spring配置文件applicationContext.xml里配置,在数据源的节点中添加jdbcUrl属性如下:

jdbc:mysql://localhost:3306/dbname?useUnicode=true&characterEncoding=utf-8

或者,如果在hibernate配置文件中,可以添加如下两个属性的配置代码:

name="connection.useUnicode">true

utf-8

5、Mysql默认字符集:

在Mysql的安装根目录下,my.ini中:

# 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

安装时,默认的字符集是latin1.

Mysql默认字符集,可以在安装时配置,也可以通过Mysql自带的MySQL Server Instance Config

Wizard重新配置,配置后重启服务才可生效。

6、数据库表字段的字符集:

MySQL对于字符集的指定可以细化到一个数据库,一张表,一列(字段),应该用什么字符集。

通过在create语句中添加character set

参数指定相应的字符集,如果不指定,则会默认使用其上一个层

级的字符集。

==============问题分析=============

那么,来分析一下,问题可能是出现在什么地方?

结合以上总结的可能出错的几个地方,我逐一进行了测试,最后发现和预想的结果一致:

通过报错信息可以看出,这个问题应该是表单提交的中文字符与Mysql本身的字符集的设置有冲突导致

的,因此排除项目中那些与页面文件相关的字符集设置。

网上有些地方说,这个问题与下面这个配置中指定的字符集相关:

jdbc:mysql://localhost:3306/dbname?useUnicode=true&characterEncoding=utf-8

但是,经过我的验证,问题可能并不在此。

经过反复的测试验证,我确定问题就出在Mysql本身默认字符集的设置上。

通过命令: mysql> SHOW VARIABLES LIKE

'character%';

查看Mysql默认字符集的相关设置:

+--------------------------+---------------------------------+

|

Variable_name |

Value |

+--------------------------+---------------------------------+

|

character_set_client |

latin1 |

|

character_set_connection |

latin1 |

| character_set_database |

latin1 |

|

character_set_filesystem |

binary |

|

character_set_results |

latin1 |

|

character_set_server |

latin1 |

|

character_set_system |

utf8 |

|

character_sets_dir |

D:\Program Files\MySQL\MySQL Server 5.1\share\charsets\

|

+--------------------------+---------------------------------+

由于表是根据hibernate映射文件在spring容器加载启动时自动创建的,没有为数据库、表和表的字段

指定字符集,因此,创建时均使用Mysql默认的latin1字符集,而这个字符集显然根本不可能处理中文字符,

上面的报错信息就是因为它而产生的。

因此,通过修改Mysql的默认字符集或者在创建数据库、表和表的字段时指定字符集解能决这个问题。

下面,以修改Mysql的默认字符集为例说明。

为了让Mysql支持中文字符,可以把它的默认字符集设置为:

utf-8 ——支持几乎所有字符

gb2312 ——是简体中文的码

gbk ——支持简体中文及繁体中文

中的任何一个。

修改默认字符集的方法如下:

(1) 最简单的修改方法,就是修改Mysql的my.ini文件中的字符集键值,

如 default-character-set =

utf8

character_set_server = utf8

修改完后,重启mysql的服务,service mysql

restart。

使用 mysql> SHOW VARIABLES LIKE

'character%';查看,发现数据库编码均已改成utf8

+--------------------------+---------------------------------+

|

Variable_name |

Value |

+--------------------------+---------------------------------+

|

character_set_client |

utf8 |

|

character_set_connection |

utf8 |

|

character_set_database |

utf8 |

|

character_set_filesystem |

binary |

|

character_set_results |

utf8 |

|

character_set_server |

utf8 |

|

character_set_system |

utf8

mysql 1366 hy000_ERROR 1366 (HY000): Incorrect string value错误解决办法相关推荐

  1. Incorrect string value错误解决

    创建数据库时配置 character set为:utf8mb4 collation为:utf8mb4_unicode_ci表的配置 character set为:utf8mb4 collation为: ...

  2. mysql:ERROR 1366: Incorrect string value:错误解决

    首先排查MySQL的字符集是否为UTF-8 通过命令 mysql> show variables like '%char%'; 得到 +--------------------------+-- ...

  3. weiphp mysql权限_weiphp 3.0创建插件提示错误解决办法 提示您没有创建目录写入权限,...

    环境 linux weiphp3.0 步骤: 创建weiphp插件的时候提示 目录不可写入 解决方法: 查看是/Admin/Plugin/create.html 这个文件提示的 找到 Applicat ...

  4. Linux MySQl 5.7.17 MySQL ERROR 1366(HY000):Incorrect string value 解决方法

    MySQL ERROR 1366(HY000):Incorrect string value,在往数据库中插入中文的时候会出现. 这也就是编码问题,网上大部分都是说设置下配置文件中的设置,而可悲的是在 ...

  5. ERROR 1366 (HY000): Incorrect string value......(Mysql报错解决)

    2019.11.29更新:发现了新的解决方法 错误描述 在控制台执行插入操作的时候,Mysql报错ERROR 1366 (HY000): Incorrect string value--插入操作失败, ...

  6. linux mysql 1366_Linux MySQl 5.7.17 MySQL ERROR 1366(HY000):Incorrect string value 解决方法

    MySQL ERROR 1366(HY000):Incorrect string value,在往数据库中插入中文的时候会出现. 这也就是编码问题,网上大部分都是说设置下配置文件中的设置,而可悲的是在 ...

  7. mysql insert 1366_mysql insert中文乱码无法插入ERROR 1366 (HY000): Incorrect string value

    MYSQL经典问题: (ERROR 1366 (HY000): Incorrect string value:'\xD5\xD4' for column 'name' at row 1) 网上有好多解 ...

  8. Mysql插入中文时提示:ERROR 1366 (HY000): Incorrect string value: '\xE5\x8F\xB0\xE5\xBC\x8F...' fo

    Mysql插入数据时提示:ERROR 1366 (HY000): Incorrect string value: '\xE5\x8F\xB0\xE5\xBC\x8F-' fo 分析如下: 首先通过语句 ...

  9. 【MySQL】【数据库编码问题】ERROR 1366 (HY000): Incorrect string value: '\xC0\xEE\xC7\xBF' for column

    [MySQL]ERROR 1366 (HY000): Incorrect string value: '\xC0\xEE\xC7\xBF' for column 'SNAME' at row 1 今天 ...

最新文章

  1. 2020薪资排名第一的专业公布,除了计算机还有这些!
  2. 深度学习在机器人视觉中的局限与优势(综述)
  3. argparse subparsers()
  4. Effective C++ --4 设计与声明
  5. 【产品】密码明文显示的必要性和解决方案
  6. ios11更新提示信任_iOS13.6.1正式版更新,主要修复两大问题
  7. 在eclipse中把项目部署到tomcat中时,发现项目文件不完整
  8. redis集群报Jedis does not support password protected Redis Cluster configurations异常解决办法...
  9. ios之最简单的程序
  10. 学成在线--18.新增课程(课程分类查询)
  11. 消息中间件—Kafka 的设计思想
  12. CenOS7.4内核升级修复系统漏洞
  13. error和warning指令
  14. Asp.net页面生命周期详解任我行(3)-服务器处理请求详细过程
  15. vmd与ovito的对比
  16. C专家编程第二章,c语言特性的不足
  17. 两变频调速电机系统的神经网络逆同步控制
  18. 搜狗新闻语料库 python正则表达式 新闻内容提取
  19. C# 实现eval,支持任意个数、任意基本类型的参数
  20. 【教程】公众号图文添加Word、Excel、PDF等文件

热门文章

  1. 2021算法竞赛入门班第一节课【枚举、贪心】习题
  2. 第一章 基础算法 【完结】
  3. mysql之外键约束
  4. python读文件去除空行_「34」Python文件操作经典案例:CSV文件的读与写
  5. java oss 批量传输_初步使用阿里云OSS对象存储功能
  6. 我去,还在这样读写 excel 这也太低效了吧,好办法来了
  7. Qt入门之基础篇 ( 一 ) :Qt4及Qt5的下载与安装
  8. 蓝桥杯-字串统计(java)
  9. Maven环境变量配置以及修改阿里云镜像
  10. 热乎着,昨晚阿里这题真太绝了