在MySQL中,要正確地顯示中文,需要對數據庫和表進行特殊設置,以及對查詢結果進行編碼轉換。
首先在創建數據庫或表時,需要設置默認字符集為utf8或utf8mb4。utf8支持最多3個字節的字符,utf8mb4支持最多4個字節的字符,因此在存儲emoji表情等特殊字符時,應該選擇utf8mb4。
CREATE DATABASE mydb DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE TABLE mytable (col1 VARCHAR(50) CHARACTER SET utf8mb4);
同時,在程序連接數據庫時,需要設置客戶端和服務器的字符集為utf8或utf8mb4。
SET NAMES 'utf8mb4';
對于已經存在的數據庫或表,可以使用ALTER語句進行修改。
ALTER DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ALTER TABLE mytable MODIFY col1 VARCHAR(50) CHARACTER SET utf8mb4;
有時在查詢結果中出現亂碼,這是因為MySQL默認使用latin1字符集進行編碼,需要使用CONVERT函數將結果轉換為utf8或utf8mb4。
SELECT CONVERT(col1 USING utf8mb4) FROM mytable;
以上是MySQL顯示中文的相關設置,正確地設置字符集可以避免出現亂碼問題。