mysql 错误提示1366 Incorrect string value怎么解决?

mysql 错误提示1366 Incorrect string value怎么解决?,第1张

只需要修改配置文件即可解决。

工具:电脑。

1、开始图标出点击鼠标右键,选择菜单上的运行。

2、在输入框中输入cmd,再点击确定。

3、输入mysql -uroot -p+密码。

4、连接成功后输入:show variables like ‘char%’。

5、找到配置文件所在地址。

6、打开mysql.ini文件,修改默认字符集为utf8,因为MYSQL版本不同,配置文件里的内容也不大一样,只需要修改找到字符集设置并统一修改成utf8即可。

mysql中文显示问题[ERROR 1366 (HY000):错误

mysql[ERROR 1366 (HY000):错误]中文显示问题

mysql的字符集用utf8也解决不了中文的编码问题,用gbk才能解决。所以总结一下如果更改编码:

停掉mysql服务,修改my.ini文件,修改两处default-character-set=gbk。启动mysql服务。再次插入,还是有问题。

用status看了一下:

mysql>status

原来

Connection id: 25

Current database: order_movie_ticket

Current user: root@localhost

SSL:Not in use

Using delimiter:

Server version: 5.1.45-community MySQL Community Server (GPL)

Protocol version: 10

Connection: localhost via TCP/IP

Server characterset:utf8

Db characterset:utf8

Client characterset:gbk

Conn. characterset:gbk

TCP port: 3306

Uptime: 6 min 31 sec

虽然Client characterset和Conn. characterset都改成了gbk, Db characterset的字符集还是utf8,所以仍出现中文乱码。

所以要把它设回gbk,用alter命令。

mysql>alter database order_movie_ticket character set gbk

因为只改了order_movie_ticket这一个db,所以直接用status查结果还是Db characterset的字符集为utf8,但是若转入order_movie_ticket,只看他自己的

mysql>use order_movie_ticket

再用status看一下,这回对了。再次插入数据,这回正确了。

要注意的是以上改的前提是database order_movie_ticket里是空的,如果它的一些表里已经有数据就不能只改db了,还要用alter命令改相应的table,

如:mysql>alter table movie character set gbk

可以通过如下命令

mysql>show create table movie来看表的create命令形式的结构和表的字符集。

----------------------------------------------------------

movie | create table 'movie' (

'movie_id' bigint(20) not null auto_increment,

'name' varchar(50) not null,

'actor' varchar(100) not null,

'director' varchar(30) not null,

'classification' varchar(30) default null,

'story' varchar(200) default null,

'valid' char(1) not null default 'Y',

primary key ('movie_id')

) ENGINE=InnoDB DEFAULT CHARSET=gbk

------------------------------------------------------------

这样改应该就可以了。

我用Python写ORM,插入一条数据进MySql的时候报了:1366 Incorrect string value: '

这条数据是有中文的,所以很明显是编码问题!

我插入的数据格式:

以下是我的解决办法!

看我的文章,中有一篇是修改MySql的my.ini配置文件,修改MySql的字符编码格式修改成utf8格式的编码!

有可能你这步改完就可以了! 也有可能这步 *** 作完还是报错!那就看第二步。

第一步 *** 作完了,但是添加数据的时候还是报错,原因是因为第一步还没 *** 作完,你就已经建了一张表,我的表名是app_book。所以这张app_book的字符编码还是按我没修改字符编码之前的编码格式,所以这个时候我需要将这张表的编码格式转换一下,具体 *** 作如下!

比如:你可以先查看这张app_book表中的每个字段的编码格式

改变表的编码,为 utf8mb4 或者 utf8

OK! 完成以上 *** 作,再次执行ORM语句:

这次就没报错了,添加成功!


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/6846535.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-29
下一篇2023-03-29

发表评论

登录后才能评论

评论列表(0条)

    保存