Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學

免費空間網頁亂碼終極解碼:HTML/PHP/ASP/JSP 編碼宣告全攻略

編輯:系統常見問題解答

將網頁上傳至免費空間(尤其是海外主機)後出現亂碼,主因是伺服器預設編碼(常為 ISO-8859-1 或 UTF-8)與網頁實際編碼(Big5、GB2312、UTF-8)不匹配。本文依檔案類型提供精確的編碼宣告語法,並補充 ASP 與 Access 資料庫的特殊處理技巧,讓中文內容完美落地。

核心原則:HTTP 標頭 + 文件內部雙重宣告

瀏覽器優先依據 HTTP Response Header Content-Type: text/html; charset=xxx 解碼;若無標頭,再讀取 <meta> 或伺服器端腳本設定。建議兩端同步設定,確保萬無一失。

依檔案類型設定編碼宣告

1. 靜態網頁(.html / .htm)

<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <!-- 或 charset=big5 / gb2312 依實際編碼 -->
</head>

2. PHP / CGI(.php / .php3 / .php4)

在 每支 PHP 檔案最開頭( 加入:

<?php header("Content-Type: text/html; charset=utf-8"); ?>

或修改 php.ini:default_charset = "UTF-8"(需主機權限)。

3. ASP / JSP(.asp / .jsp)

ASP:檔案第一行插入
<% Response.CodePage = 65001 : Response.Charset = "utf-8" %>
(65001 = UTF-8;950 = Big5;936 = GB2312)

特殊情況:

  • 若第一行為 <%@ Language=VBScript %>,改為:
    <%@ Language=VBScript %><% Response.CodePage=65001:Response.Charset="utf-8"%>
  • 若第一行為 <!-- #include ... --> 或 <% Option Explicit %>,則在其下一行插入編碼宣告。

JSP:頁面頂端加入
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>

資料庫編碼同步(關鍵)

  • Access 2000+:開啟 .mdb →「工具」→「資料庫實用程式」→「轉換資料庫」→ 選擇「早期版本」或直接另存為 UTF-8 相容格式。
  • SQL Server / MySQL:資料庫、資料表、欄位 Collation 統一設為 utf8_general_ci / utf8mb4_general_ci;連線字串加入 Charset=utf8 / Character Set=utf8mb4。

ASP.NET (Web.config) 全站統一設定

<configuration>
  <system.web>
    <globalization requestEncoding="utf-8" responseEncoding="utf-8" />
  </system.web>
</configuration>

上傳前檢查清單

  1. 本機 IIS 完整測試:所有功能正常、中文顯示正確、資料庫中文無亂碼。
  2. 備份所有原始檔與 .mdb。
  3. 上傳檔案(建議用二進位模式 FTP)。
  4. 上傳 .mdb 並再次確認中文顯示。

編碼問題看似瑣碎,實則是跨平台部署的關鍵細節。掌握「雙重宣告、資料庫同步、上傳驗證」三步驟,免費空間也能跑出專業級的中文網站。

Copyright © Windows教程網 All Rights Reserved