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

 更新时间:2024年01月31日 10:21:19   作者:lidashent  
这篇文章主要介绍了如何解决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中如何给一个字段递增赋值

    MySQL中如何给一个字段递增赋值

    这篇文章主要介绍了MySQL中如何给一个字段递增赋值问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • MySQL insert 记录后查询乱码问题解决方法

    MySQL insert 记录后查询乱码问题解决方法

    文章通过分析一个MySQL插入数据后查询乱码的问题,探讨了乱码的原因,并提出了解决方法,问题的根本原因是MySQL客户端和服务器之间的字符集不一致,导致插入的中文字符被错误解码为乱码,感兴趣的朋友跟随小编一起看看吧
    2024-11-11
  • MySQL5.7主从配置实例解析

    MySQL5.7主从配置实例解析

    这篇文章主要为大家详细解析了MySQL5.7主从配置的实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • 浅谈MySQL 统计行数的 count

    浅谈MySQL 统计行数的 count

    这篇文章主要介绍了MySQL 统计行数的 count的相关资料,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • MySQL8.0中你必须要知道的索引新特性

    MySQL8.0中你必须要知道的索引新特性

    MySQL8.0索引新特性,支持降序索引,降序索引以降序存储键值,下面这篇文章主要给大家介绍了关于MySQL8.0中你必须要知道的索引新特性的相关资料,需要的朋友可以参考下
    2022-11-11
  • MySQL为例讲解JDBC数据库连接步骤

    MySQL为例讲解JDBC数据库连接步骤

    这篇文章主要为大家详细介绍了MySQL为例讲解JDBC数据库连接步骤,感兴趣的小伙伴们可以参考一下
    2016-08-08
  • MySQL数据库可以用任意ip连接访问的方法

    MySQL数据库可以用任意ip连接访问的方法

    本文主要介绍了MySQL数据库可以用任意ip连接访问的方法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • MYSQL中解析json格式数据方法示例

    MYSQL中解析json格式数据方法示例

    这篇文章主要给大家介绍了关于MYSQL中解析json格式数据的相关资料,JSON是一种轻量级的数据交换格式,采用了独立于语言的文本格式,类似XML,但是比XML简单,易读并且易编写,需要的朋友可以参考下
    2023-08-08
  • Mysql数据库乐观锁与悲观锁示例详解

    Mysql数据库乐观锁与悲观锁示例详解

    乐观锁和悲观锁是并发控制的一种机制,用于多线程或多进程环境下对共享资源的访问管理,以防止数据不一致或竞态条件,这篇文章主要介绍了Mysql数据库乐观锁与悲观锁的相关资料,需要的朋友可以参考下
    2026-04-04
  • MySQL数据库触发器从小白到精通

    MySQL数据库触发器从小白到精通

    触发器是SQLserver提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作时就会激活它执行。触发器经常用于加强数据的完整性约束和业务规则等
    2022-03-03

最新评论