首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

IE6 GET 請求傳遞奇數個漢字亂碼根因與 urlencode 統一解決方案

     編輯:PHP 相關知識

問題現象

UTF-8 項目,IE6 通過 GET 傳遞**奇數個漢字** (如「中文」2 字正常,「中」1 字亂碼) 到服務端。IE7+/Firefox/Chrome 正常。

根因

IE6 內部對 URL 編碼處理存在缺陷,奇數字節的多字節字符 (UTF-8 漢字 3 字節) 導致解碼錯誤。

統一解決方案

  • 服務端 (PHP):所有 GET 參數統一 urlencode() 編碼輸出鏈接,接收端自動 urldecode() (PHP 自動處理 $_GET)。
  • 客戶端 (JS):傳參前用 encodeURIComponent() 編碼 (而非 encodeURI),對應 PHP urldecode() / rawurldecode()。

最佳實踐

**養成習慣:所有 URL 參數 (GET/POST Body) 均經過編碼再拼接/傳輸**,消除瀏覽器差異、特殊字符注入、編碼不一致等全類別問題,提升兼容性、安全性、可移植性。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved