在 XAMPP 環境下運行 DVWA(Damn Vulnerable Web App)常遇到頁面顯示亂碼。本文提供兩種解決路徑,並延伸解決 ShopEx 類似問題。

手動將瀏覽器編碼從「自動檢測」切換為 GB2312 / GBK 即可正常顯示。

缺點:每次訪問需手動操作,不適合長期開發測試。
DVWA/dvwa/includes/dvwaPage.inc.php(相對路徑固定,安裝目錄視實際情況調整)。utf-8 改為 gb2312。// dvwaPage.inc.php 中找到 header 發送處
// 原代碼:
header("Content-Type: text/html; charset=utf-8");
// 修改為:
header("Content-Type: text/html; charset=gb2312");

修改後刷新頁面,亂碼徹底消失。
Fatal error: Class 'kernel' not found in D:\bendi\xampp\htdocs\install\install.core.php on line 10

php/ZendOptimizer 目錄,配置新版 PHP 加載該擴展(較複雜,不推薦新手)。| 場景 | 核心原因 | 推薦方案 |
|---|---|---|
| DVWA 亂碼 | 應用層編碼聲明與實際輸出不符 | 修改 dvwaPage.inc.php 強制 GB2312 |
| ShopEx 亂碼/報錯 | PHP 版本過高缺失 Zend Optimizer | 降級用 XAMPP 1.7.1 或補裝 Zend Guard Loader |
編碼問題本質是「聲明與實際不符」;加密軟件相容問題本質是「運行時依賴缺失」。對症下藥,方能一勞永逸。