元數據(列名、資料庫名、用戶名、SHOW 結果、INFORMATION_SCHEMA 內容)必須:
SELECT 查詢同一列不同行字符集不一致導致失效。MySQL 採用 UTF-8 滿足上述需求。
USER()、CURRENT_USER()、DATABASE()、VERSION() 等函數返回值預設字符集為 UTF-8(character_set_system)。SHOW VARIABLES LIKE 'character_set_system'; 固定返回 utf8。預設由 character_set_results 決定(受 SET NAMES 影響)。若設為 NULL,則不轉換,直接返回 UTF-8 原始編碼。
SET NAMES 強制轉換,或在客戶端自行轉換(效率更高但非所有客戶端支援)。WHERE USER() = latin1_column)時,MySQL 自動處理轉換(latin1_column 內容轉 UTF-8 比較;INSERT ... SELECT USER() 時 USER() 結果轉 latin1 存儲)。errmsg.txt 亦全面採用 UTF-8,客戶端字符集自動轉換。