Mysql 插入中文错误:Incorrect string value: '\xE7\xA8\x8B\xE5\xBA\x8F...' for column 'course' at row 1
2018-01-23 13:38
776 查看
建表语句
areate database day_01;
use day_01;
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','admin');
insert into my_user values('3','admin','admin');
insert into my_user values('4','admin','admin');
insert into my_user values('5','admin','admin');
insert into my_user values('6','admin','admin');
insert into my_user values('7','system','sysytem');
insert into my_user values('11','拆','巨白');
Incorrect string value: '\xE7\xA8\x8B\xE5\xBA\x8F...' for column 'course' at row 1
出现这个错误的原因是,数据库的编码格式为latin1 而我要将utf8的中文插入到数据库中。
一开始修改 修改数据库的编码
alter table my_user default character set utf8;
但是插入中文依然出现错误。
然后通过查看数据表编码
show create table score;
发现表的编码改过来了,但是列的编码却没有改过来
alter table my_user change account account varchar(255) character set utf8;
alter table my_user change password password varchar(255) character set utf8;
然后插入中文,查询正常~OK
-- 创建数据库时,设置数据库的编码方式
-- CHARACTER SET:指定数据库采用的字符集,utf8不能写成utf-8
-- COLLATE:指定数据库字符集的排序规则,utf8的默认排序规则为utf8_general_ci(通过show character set查看)
drop database if EXISTS dbtest;
create database dbtest CHARACTER SET utf8 COLLATE utf8_general_ci;
-- 修改数据库编码
alter database dbtest CHARACTER SET GBK COLLATE gbk_chinese_ci;
alter database dbtest CHARACTER SET utf8 COLLATE utf8_general_ci;
-- 创建表时,设置表、字段编码
use dbtest;
drop table if exists tbtest;
create table tbtest(
id int(10) auto_increment,
user_name varchar(60) CHARACTER SET GBK COLLATE gbk_chinese_ci,
email varchar(60),
PRIMARY key(id)
)CHARACTER SET utf8 COLLATE utf8_general_ci;
-- 修改表编码
alter table tbtest character set utf8 COLLATE utf8_general_ci;
-- 修改字段编码
ALTER TABLE tbtest MODIFY email VARCHAR(60) CHARACTER SET utf8 COLLATE utf8_general_ci;
-- 查看所有的字符编码
SHOW CHARACTER SET;
-- 查看创建数据库的指令并查看数据库使用的编码
show create database dbtest;
-- 查看数据库编码:
show variables like '%char%';
-- 设置character_set_server、set character_set_client和set character_set_results
set character_set_server = utf8; -- 服务器的默认字符集。使用这个语句可以修改成功,但重启服务后会失效。根本的办法是修改配置MYSQL文件MY.INI,
character_set_server=utf8,配置到mysqld字段下。
set character_set_client = gbk; -- 来自客户端的语句的字符集。服务器使用character_set_client变量作为客户端发送的查询中使用的字符集。
set character_set_results = gbk; -- 用于向客户端返回查询结果的字符集。character_set_results变量指示服务器返回查询结果到客户端使用的字符集。包括结果数据,例如列值和结果元数据(如列名)。
-- 查看某字段使用的编码:
SELECT CHARSET(email) FROM tbtest;
areate database day_01;
use day_01;
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','admin');
insert into my_user values('3','admin','admin');
insert into my_user values('4','admin','admin');
insert into my_user values('5','admin','admin');
insert into my_user values('6','admin','admin');
insert into my_user values('7','system','sysytem');
insert into my_user values('11','拆','巨白');
Incorrect string value: '\xE7\xA8\x8B\xE5\xBA\x8F...' for column 'course' at row 1
出现这个错误的原因是,数据库的编码格式为latin1 而我要将utf8的中文插入到数据库中。
一开始修改 修改数据库的编码
alter table my_user default character set utf8;
但是插入中文依然出现错误。
然后通过查看数据表编码
show create table score;
发现表的编码改过来了,但是列的编码却没有改过来
alter table my_user change account account varchar(255) character set utf8;
alter table my_user change password password varchar(255) character set utf8;
然后插入中文,查询正常~OK
-- 创建数据库时,设置数据库的编码方式
-- CHARACTER SET:指定数据库采用的字符集,utf8不能写成utf-8
-- COLLATE:指定数据库字符集的排序规则,utf8的默认排序规则为utf8_general_ci(通过show character set查看)
drop database if EXISTS dbtest;
create database dbtest CHARACTER SET utf8 COLLATE utf8_general_ci;
-- 修改数据库编码
alter database dbtest CHARACTER SET GBK COLLATE gbk_chinese_ci;
alter database dbtest CHARACTER SET utf8 COLLATE utf8_general_ci;
-- 创建表时,设置表、字段编码
use dbtest;
drop table if exists tbtest;
create table tbtest(
id int(10) auto_increment,
user_name varchar(60) CHARACTER SET GBK COLLATE gbk_chinese_ci,
email varchar(60),
PRIMARY key(id)
)CHARACTER SET utf8 COLLATE utf8_general_ci;
-- 修改表编码
alter table tbtest character set utf8 COLLATE utf8_general_ci;
-- 修改字段编码
ALTER TABLE tbtest MODIFY email VARCHAR(60) CHARACTER SET utf8 COLLATE utf8_general_ci;
-- 查看所有的字符编码
SHOW CHARACTER SET;
-- 查看创建数据库的指令并查看数据库使用的编码
show create database dbtest;
-- 查看数据库编码:
show variables like '%char%';
-- 设置character_set_server、set character_set_client和set character_set_results
set character_set_server = utf8; -- 服务器的默认字符集。使用这个语句可以修改成功,但重启服务后会失效。根本的办法是修改配置MYSQL文件MY.INI,
character_set_server=utf8,配置到mysqld字段下。
set character_set_client = gbk; -- 来自客户端的语句的字符集。服务器使用character_set_client变量作为客户端发送的查询中使用的字符集。
set character_set_results = gbk; -- 用于向客户端返回查询结果的字符集。character_set_results变量指示服务器返回查询结果到客户端使用的字符集。包括结果数据,例如列值和结果元数据(如列名)。
-- 查看某字段使用的编码:
SELECT CHARSET(email) FROM tbtest;
相关文章推荐
- Mysql 插入中文错误:Incorrect string value: '\xE7\xA8\x8B\xE5\xBA\x8F...' for column 'course' at row 1
- Mysql 插入中文错误:Incorrect string value: '\xE7\xA8\x8B\xE5\xBA\x8F...' for column 'course' at row 1
- Mysql 无法输入中文错误:Incorrect string value: '\xE7\xA8\x8B\xE5\xBA\x8F...' for column 'course' at row 1
- MySQL存入中文示错误 Incorrect string value: '\xD5\xC5\xC8\xFD' for column 'student_name' at row 1
- Mysql 插入中文错误:Incorrect string value: '\xE7\xA8\x8B\xE5\xBA\x8F...' for column 'course' at row 1
- mysql 中插入中文出现的 Incorrect string value: '\xE5\xA5\xBD\xE5\xAE\xB6...' from column错误
- mysql在插入中文和空格时 text数据类型报mysql incorrect string value .....错误!
- Mysql 插入中文错误:Incorrect string value: '\xE7\xA8\x8B\xE5\xBA\x8F...' for column ? row ?
- 今天遇到Mysql插入数据里有中文字符出现Incorrect string value的错误
- MySQL数据插入错误: Incorrect string value:"XXXXXX"for column'trurname' at row 1
- mysql插入中文数据报错 java.sql.SQLException: Incorrect string value: '\xE5\x90\x88\xE8\xAE\xA1' for column
- Mysql 插入中文错误:Incorrect string value: '\xE7\xA8\x8B\xE5\xBA\x8F...' for column 'course' at row 1
- Error Code: 1366. Incorrect string value: '\xE4\xBA\xA7\xE5\x93\x81...' for column (mysql插入中文)
- 【转】Mysql 插入中文错误:Incorrect string value: '\xE7\xA8\x8B\xE5\xBA\x8F...' for column 'course' at row 1
- 今天遇到Mysql 插入数据里有中文字符出现 Incorrect string value 的错误
- Mysql 插入中文错误:Incorrect string value 解决方案
- 解决mysql插入数据时出现Incorrect string value: '\xF0\x9F...' for column 'name' at row 1的异常
- 【问题解决】MySQL5.5 向MySQL数据库中插入汉字时,提示:Incorrect string value: '\Xe7\x8E...' for column 'XXX' at row 1
- Mysql 插入中文错误:Incorrect string value: '\xE7\xA8\x8B\xE5\xBA\x8F...' for column 'course' at row 1
- 解决Mysql插入中文乱码问题:Incorrect string value: ‘\xA8D\xA8D\xBA\xE1…’ for column