mysql c 中文字符串_Mysql 5.5 中文字符编码问题。1366, "Incorrect string value: '\\xE7\\xB3\\xBB\ \xE5\\x88\\x97' .....

一、查看当前数据库字符集编码

show VARIABLES like 'character_%';

620313545aaebf0af6b6e15ac7439161.png

将所有字段值非utf8 (上图中为latin1 拉丁)修改为utf8 set character_set_database=utf8; set character_set_connection=utf8;

23c101af4aff81c42f6d82738c4be041.png

测试

use test;

create table Test(

Name nvarchar(10)

);

insert into Test values('中文');

select * from Test;

二、MySQL的四级字符集设置

如上操作后可以直接数据库插入中文,但是 navicat 以及Django这样的不能进行插入中文,查询出来是乱码,就可以进行以下操作

MySQL中默认字符集的设置有四级:服务器级,数据库级,表级 。最终是字段级 的字符集设置。注意前三种均为默认设置,并不代码你的字段最终会使用这个字符集设置。所以建议要用 show create table table ; 或 show full fields from tableName; 来检查当前表中字段的字符集设置。

2.2 查看库、表、字段编码

查看数据库编码: SHOW CREATE DATABASE db_name;

查看表编码: SHOW CREATE TABLE tbl_name;

查看字段编码: SHOW FULL COLUMNS FROM tbl_name;

如图查看字段输入:show full fields from api_products\G; 我的字段依旧是拉丁,所以需要修改

232fd81b2c740b7d207cb485467ba024.png

2.2.2 根据上面查询出来的编码选择对应的操作修改编码

修改数据库字符集: ALTER DATABASE db_name DEFAULT CHARACTER SET character_name [COLLATE ...];

把表默认的字符集和所有字符列(CHAR,VARCHAR,TEXT)改为新的字符集: ALTER TABLE tbl_name CONVERT TO CHARACTER SET character_name [COLLATE ...] 如:ALTER TABLE api_products CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

只是修改表的默认字符集: ALTER TABLE tbl_name DEFAULT CHARACTER SET character_name [COLLATE...]; 如:ALTER TABLE api_products DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

修改字段的字符集: ALTER TABLE tbl_name CHANGE c_name c_name CHARACTER SET character_name [COLLATE ...]; 如:ALTER TABLE api_products CHANGE title title VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci;

把我表默认的字符集所有字符列,修改为新字符集:

5596a8fb76db9d05f47a3f827dcac1c4.png

成功了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值