MySQL数据库的默认编码是latin1
,也称为ISO-8859-1
。这是一种单字节字符集,能够表示西欧语言中的大多数字符。然而,在处理多语言数据时,特别是包含中文、日文或其他非拉丁字符的数据时,使用utf8
或utf8mb4
编码会更加合适。
utf8
的超集,支持完整的Unicode字符,包括emoji表情符号,最大字符长度为4个字节。可以在创建数据库时指定编码,或者在MySQL配置文件中设置默认编码。
CREATE DATABASE mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
编辑MySQL的配置文件(通常是my.cnf
或my.ini
),添加或修改以下配置:
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
[client]
default-character-set=utf8mb4
原因:数据库、表或字段的编码与实际数据的编码不匹配。 解决方法:
utf8mb4
编码。在PHP中连接MySQL时,可以这样设置字符集:
$mysqli = new mysqli("localhost", "user", "password", "database");
$mysqli->set_charset("utf8mb4");
在Python中使用pymysql
库时:
import pymysql
conn = pymysql.connect(host='localhost', user='user', password='password', db='database', charset='utf8mb4')
通过以上设置,可以有效避免因编码不匹配导致的乱码问题。
领取专属 10元无门槛券
手把手带您无忧上云