MySQL汉字显示异常:替换问号?(mysql汉字显示问号)

MySQL汉字显示异常,一般会用到问号?,这种情况是因为计算机存储的单位是字节,而汉字一般是双字节所以造成了乱码的情况,本文将介绍如何解决 MySQL 汉字显示异常的问题。

首先,我们需要将MySQL的字符集设置为utf8mb4,数据库可以支持最新的Unicode注释编码。数据库相关配置可以在MySQL配置文件中进行配置,可以在安装路径下的my.cnf中进行配置。可需要使用管理员权限进行配置,如果没有,可在文件头部添加:

[client]
default-character-set=utf8mb4
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
init-connect = 'SETNAMES utf8mb4'

其次,要将MySQL的连接代码中的字符集与服务器的字符集同步,才能显示正确的汉字,并正确显示多字节字符,可在连接代码中加入:

//MySQL通过PHP脚本连接时
$pdo->query("set names utf8mb4");
//MySQL连接池
jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC&useSSL=false

最后,可以在MySQL中查询并将字符集转换为utf8mb4,将所有?替换成正确的汉字显示。

首先,在MySQL CLI中查看需要转换的字段类型:

SHOW COLUMNS FROM table_name;

然后,可以查看表中有问号的字段:

SELECT * FROM table_name WHERE field_name != '?';

接着,使用MySQL UPDATE语句将不是正确汉字的所有字段替换成?:

UPDATE table_name SET field_name='?' WHERE field_name != '汉字';

最后,使用ALTER语句对字段重新指定utf8mb4类型:

ALTER TABLE table_name MODIFY field_name VARCHAR(40) CHARACTER SET utf8mb4 COLLATE UTF8MB4_GENERAL_CI;

以上就是MySQL汉字显示异常中如何替换问号?的操作步骤,此过程可以使MySQL支持更多的字符集,更好的显示汉字,让MySQL更加安全可靠。


数据运维技术 » MySQL汉字显示异常:替换问号?(mysql汉字显示问号)