MySQL 數據庫中,我們有時會遇到中文變問號的問題,這是由于字符編碼不一致所導致的。
在 MySQL 中,字符編碼的種類很多,比較常用的包括 utf8、utf8mb4、gbk、gb2312 等。在不同的字符編碼下,同樣的中文字符可能會被表示成不同的二進制值。
例如,"你好" 這個字符串,在 utf8 編碼下需要占用 6 個字節,而在 utf8mb4 編碼下需要占用 8 個字節。如果在一個使用 utf8 編碼的數據庫中插入了一個使用 utf8mb4 編碼的字符串,那么該字符串中的中文字符就會變成問號。
為了避免這種情況,我們需要在 MySQL 中統一使用一種字符編碼。具體操作如下:
# 查看當前的字符編碼設置 SHOW VARIABLES LIKE 'character%'; # 修改字符編碼設置為 utf8mb4 SET NAMES utf8mb4;
需要注意的是,修改字符編碼設置只是解決了新數據插入時的問題,已經存在的數據如果出現了亂碼,也需要采取相應的措施來處理。