在 MySQL 中,字符编码的种类很多,比较常用的包括 utf8、utf8mb4、gbk、gb2312 等。在不同的字符编码下,同样的中文字符可能会被表示成不同的二进制值。
例如,”你好” 这个字符串,在 utf8 编码下需要占用 6 个字节,而在 utf8mb4 编码下需要占用 8 个字节。如果在一个使用 utf8 编码的数据库中插入了一个使用 utf8mb4 编码的字符串,那么该字符串中的中文字符就会变成问号。
为了避免这种情况,大家需要在 MySQL 中统一使用一种字符编码。具体操作如下:
# 查看当前的字符编码设置 SHOW VARIABLES LIKE 'character%'; # 修改字符编码设置为 utf8mb4 SET NAMES utf8mb4;
需要注意的是,修改字符编码设置只是解决了新数据插入时的问题,已经存在的数据如果出现了乱码,也需要采取相应的措施来处理。