失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 解决mysql表输入中文出现问号问题

解决mysql表输入中文出现问号问题

时间:2024-02-27 21:46:18

相关推荐

解决mysql表输入中文出现问号问题

文章目录

分析修改配置文件修改数据库编码,表编码,表中的列编码

分析

Incorrect string value: ‘\xE7\xA8\x8B\xE5\xBA\x8F…’ for column ‘course’ at row 1

数据库的编码格式为latin1

原因,不支持中文,比如设置的latin字符,或者编码解码不一致问题,比如客户端用uf8,服务器用latin等

解决:统一设置为utf-8格式即可

1.需要改配置文件,以后创建数据库自动utf-8

2,对使用的数据库,表,表中的列重新设置编码格式为utf-8

修改配置文件

在mysql目录下找到myini文件

如果文件再c盘,复制出来到桌面修改,否则c盘保护不让修改,修改后再替换即可

修改的有两处,客户端编码,服务器编码

(注:collation是排序方式)

然后重启服务器即可,在管理员的cmd中输入如下指令

查看修改后的mysql编码格式

我已经修改过了,这是修改后的

修改数据库编码,表编码,表中的列编码

1,先查询数据库编码格式

如果不是utf8,可以使用如下命令修改

ALTER DATABASE数据库DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci

或者

2,表编码格式修改

查询表的编码格式

show create table tablename(数据库名.表名);

可以看出表编码格式为utf8,列编码为latin1,列不支持中文

如果表编码不是utf8,可以如下修改

ALTER TABLE tbl_name CONVERT TO CHARACTER SET character_name [COLLATE …] (注:此句把表默认的字符集和所有字符列(CHAR,VARCHAR,TEXT)改为新的字符集:)

比如ALTER TABLE web_user.user CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

再查询如下:

latin消失了,支持中文,而且全部编码一致

若修改某字段的字符集

ALTER TABLE tbl_name CHANGE c_name c_name CHARACTER SET character_name [COLLATE …];

如:ALTER TABLE web_user.user CHANGE title title VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci;

如果还是不成功,删了重建数据表可以考虑

附:

若只修改表格默认的字符集

ALTER TABLE tbl_name DEFAULT CHARACTER SET character_name [COLLATE…];

如:ALTER TABLE logtest DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

查看字段编码:

SHOW FULL COLUMNS FROM tbl_name;

如果觉得《解决mysql表输入中文出现问号问题》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。