在 Linux 架設網站時,字元編碼不一致是導致亂碼的主因。核心原則只有一條:應用層、資料庫、連線字串三者的字元集必須完全一致。本文以 GB2312 為例說明統一流程,並推薦改用 UTF-8 避免未來相容性問題。
<%@ page contentType="text/html; charset=gb2312" %>。CREATE DATABASE mydb DEFAULT CHARACTER SET gb2312 COLLATE gb2312_chinese_ci;
jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=gb2312
UTF-8 涵蓋所有語言,無需額外轉碼,只要上述三點同步設為 UTF-8 即可一勞永逸。
/etc/sysconfig/i18n 系統語系/etc/my.cnf 的 [mysqld] 加入 default-character-set=gb2312這些系統層級設定不影響應用層編碼協商,真正關鍵在於應用與資料庫的協定一致。
舊版驅動(如 3.0.9)可能無法正確處理字元集協商,升級至 3.0.16 或更新版本常能直接解決頑固亂碼。
遵循此流程,亂碼問題將不再是困擾。