MySQL数据库插入中文时出现Incorrect string value: '\xE6\x97\xB7\xE5\x85\xA8' for column 'sz_name' at row 1

今天在开发时候出现了这个问题

Incorrect string value: ‘\xE6\x97\xB7\xE5\x85\xA8‘ for column ‘sz_name‘ at row 1

场景,往MySQL数据库的表中插入中文参数,抛出了这个异常

我用sqlyog执行该段代码时候发现只是出现警告,并没有出现error,但是在代码里面执行抛出了异常,说明管理工具sqlyog对有些约定不是那么严格,而代码中就会报错。提醒自己,以后写sql时候不能忽略管理工具中出现的警告。

解决方案:

在用sql语句建表的时候加入  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci  即可

下面是我的建表语句:

CREATE TABLE `stat_day_exception_201807` (
  `ng_id` bigint(20) NOT NULL AUTO_INCREMENT,
  `ng_report_id` bigint(20) DEFAULT NULL,
  `nt_type` int(11) NOT NULL,
  `sz_name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `sz_reason` text COLLATE utf8_unicode_ci,
  `bt_charge` int(11) DEFAULT ‘0‘,
  `ts_begin` datetime DEFAULT NULL,
  `ts_end` datetime DEFAULT NULL,
  `bt_attendance` int(11) DEFAULT ‘0‘,
  `nt_count` decimal(10,4) NOT NULL DEFAULT ‘0.0000‘,
  `nt_minutes` int(11) DEFAULT ‘0‘,
  `sz_code` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `ng_user_id` bigint(20) DEFAULT NULL,
  `dt_date` datetime DEFAULT NULL,
  PRIMARY KEY (`ng_id`),
  KEY `I_stat_day_exception_sys_user` (`ng_user_id`),
  KEY `I_stat_day_exception_day` (`dt_date`)
) ENGINE=InnoDB AUTO_INCREMENT=1701 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci

MySQL数据库插入中文时出现Incorrect string value: '\xE6\x97\xB7\xE5\x85\xA8' for column 'sz_name' at row 1

原文地址:https://www.cnblogs.com/huangzhang/p/9274401.html

时间: 2024-12-09 22:07:22

MySQL数据库插入中文时出现Incorrect string value: '\xE6\x97\xB7\xE5\x85\xA8' for column 'sz_name' at row 1的相关文章

向 mysql 插入汉字时报错 Incorrect string value: '\xE6\x9B\xB9\xE5\x86\xAC...' for col....

Incorrect string value: '\xE6\x9B\xB9\xE5\x86\xAC...' for column 'realname' at row 1 该情况一般是由数据库设计时的编码错误导致的. show variables like 'character%'   查看数据库编码,为latin1. 如果项目正在测试当中,数据不重要的话,一劳永逸的解决办法是,使用 alert database tuanplus character set utf8 更改数据库的编码格式,再重新

mysql 插入中文字段报错 "Incorrect string value: '\\xE6\\xB5\\x8B\\xE8\\xAF\\x95...' for column 'title' at row 1"

1. 查看一个 database 或一个 table 的编码show create database mytestdb;show create table testapp_article; mysql> show create table testapp_article;+-----------------+-----------------------------------------------------------------------------------------------

zip方式安装的Mysql5.7,插入中文时出现Incorrect string value: '\xF0\x9F...' for column 'XXX' at row 1异常的解决方案

Incorrect string value: '\xF0\x9F...' for column 'XXX' at row 1 这个问题,原因是UTF-8编码有可能是两个.三个.四个字节.Emoji表情或者某些特殊字符是4个字节,而Mysql的utf8编码最多3个字节,所以数据插不进去. 我的解决方案是这样的 1.在mysql的安装目录下找到my.ini,作如下修改: [mysqld] character-set-server=utf8mb4 [mysql] default-character-

jeesite导入数据库错误:java.sql.SQLException: Incorrect string value: '\xE4\xB8\xAD\xE5\x9B\xBD' for column 'name' at row 1问题解决

如果使用mvn antrun:run -Pinit-db进行数据库导入导致出现如下错误: 解决方法: 这个是由于新建数据库没有选择默认字符集导致的,只要选择utf-8即可. jeesite导入数据库错误:java.sql.SQLException: Incorrect string value: '\xE4\xB8\xAD\xE5\x9B\xBD' for column 'name' at row 1问题解决

java.sql.SQLException: Incorrect string value: '\xE6\x88\x91\xE7\x9A\x84...' for column 'groupName'

java.sql.SQLException: Incorrect string value: '\xE6\x88\x91\xE7\x9A\x84...' for column 'groupName' at row 1 甚是纠结,我原本以为应该是以下问题之一: (1).创建数据库的时候数据编码设置错误 (2).连接数据库的时候数据编码设置错误 对于(1),我删除来原来的数据库,重新创建一个新的数据库在设置编码时,我的设置如下: character set:utf8 -- UTF-8 Unicode

Mysql 插入中文错误:Incorrect string value: '\xE7\xA8\x8B\xE5\xBA\x8F...' for column 'course' at row 1

create table my_user ( id tinyint(4) not null auto_increment, account varchar(255) default null, password varchar(255) default null, primary key (id) ) 插入语句 insert into my_user values('1','admin','admin'); insert into my_user values('2','admin','admi

mysql插入报错:java.sql.SQLException: Incorrect string value: '\xE6\x9D\xAD\xE5\xB7\x9E...' for column 'address' at row 1

界面报错: 日志报错: java.sql.SQLException: Incorrect string value: '\xE6\x9D\xAD\xE5\xB7\x9E...' for column 'address' at row 1 at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129) ~[mysql-connector-java-8.0.17.jar:8.0.17] at com.mys

mysql 保存emoji时报,数据库报错:Caused by: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x82\xF0\x9F...' for column 'review' at row 1

错误原因:我们可以看到错误提示中的字符0xF0 0x9F 0x98 0x84 ,这对应UTF-8编码格式中的4字节编码(UTF-8编码规范).正常的汉字一般不会超过3个字节,为什么为出现4个字节呢?实际上是它对应的是智能手机输入法中的表情.那为什么会报错呢?因为mysql中的utf-8并不是真正意义上的utf-8,它只能存储1~3个字节长度的utf-8编码,如果想存储4个字节的必须用utf8mb4类型.不而要使用utf8mb4类型,首先要保证Mysql版本要不低于 MySQL 5.5.3. 常用

1366, "Incorrect string value: '\\xF0\\x9F\\x91\\x89\\xE3\\x80...' for column 'content' at row 1"

问题描述:Python从网站中抓取网页文本保存到MySQL数据中,对应数据库字段为longtext,字符编码utf-8.部分插入成功,部分插入失败,报错如下.1366, "Incorrect string value: '\\xF0\\x9F\\x91\\x89\\xE3\\x80...' for column 'content' at row 1" 是因为mysql不能识别4个字节的utf8编码的字符,抛出了异常,这应该也是问题的根源.?.??.类似于这种4个字节,将对应字符类型换成