MySQL 的中文乱码问题啊,真是个老生常谈但又挺烦人的事。不管是插入数据、显示查询结果,还是和别的语言联调,一旦字符集对不上,中文就全变成问号或者乱码,抓狂。

比较常见的情况,比如你在 Linux 环境下搭了个 MySQL 服务,结果中文插入后查出来一堆乱码。其实多数时候就是编码配置没对,比如库的编码是 latin1,而你客户端用的是 utf8,不对上出问题。

Linux MySQL 中文乱码方案 这篇就讲得蛮细,怎么改配置、怎么确认当前连接编码、甚至怎么写 SQL 来查当前编码设置。都挺实用的,建议你直接上去翻一翻。

还有如果你是用 C++ 连接 MariaDBMySQL 的,遇到编码问题的概率更高。可以看看这篇 C++操作 MariaDB 和 MySQL 中文乱码或无法中文的方法,讲了驱动怎么初始化、要传什么编码参数,干货挺多的。

嗯对了,如果你在调试的时候遇到 MySQL 报错但又看不懂英文提示,也推荐你看看 MySQL 出错代码列表,查错效率能提高不少。

提醒一下,不要只在应用层改编码,数据库库、表、字段、连接这几个层级的编码都要统一,才是治本之道。如果你只是做前端但也得插一脚数据库,那这些资源就更值得你收藏一下。