網頁顯示亂碼?別急,三步驟精準診斷修正
網頁亂碼本質是「瀏覽器解碼編碼與網頁實際編碼不符」。掌握編碼判斷邏輯,即可快速恢復正常顯示。
🔍 第一步:讓瀏覽器自動偵測 (最常見解法)
- Chrome/Edge: 右鍵網頁空白處 →「編碼」→ 選擇「自動偵測」或手動嘗試「Unicode (UTF-8)」、「繁體中文 (Big5)」、「簡體中文 (GB2312/GBK)」。
- Firefox: 選單 →「更多工具」→「文字編碼」→ 選擇對應編碼。
- IE: 「檢視」→「編碼」→ 選擇對應編碼。
現代網站 99% 使用 UTF-8,優先嘗試 UTF-8。
🛠️ 第二步:檢查網頁原始碼宣告的編碼
- 右鍵 →「檢視網頁原始碼」 (或 Ctrl+U)。
- 在 `` 區塊尋找 `` 或 ``。
- 記錄宣告編碼 (如 `UTF-8`、`Big5`、`GB2312`),在瀏覽器手動選擇該編碼。
🧪 第三步:線上編碼偵測工具輔助判斷
🌐 常見中文編碼對照表
| 編碼名稱 | 適用範圍 | 典型場景 |
| UTF-8 | 全球通用 (含中日韓) | 現代網站、HTML5 標準、資料庫、API |
| Big5 / Big5-HKSCS | 繁體中文 | 台灣/香港舊版網站、政府機關、傳統媒體 |
| GB2312 / GBK / GB18030 | 簡體中文 | 中國大陸舊版網站、郵件系統、舊版軟體 |
| ISO-8859-1 | 西歐語系 | 早期英文網站、郵件標頭 |
🛠️ 開發者端根治:伺服器端正確設定 Content-Type
網頁亂碼根本解決在伺服器端:
- Apache/Nginx: 設定 `AddDefaultCharset UTF-8` / `charset utf-8;`。
- PHP: `header('Content-Type: text/html; charset=UTF-8');` 在輸出前呼叫。
- HTML: `` 首行放 ``。
- 資料庫連線: `SET NAMES utf8mb4` (MySQL) / `client_encoding = 'UTF8'` (PostgreSQL)。
金鑰: 「儲存編碼 = 傳輸宣告編碼 = 瀏覽器解碼編碼」三者一致,亂碼即消失。現代開發全鏈路統一 UTF-8,避免 99% 編碼問題。