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

JSP/Servlet 漢字編碼問題深度解析:字符集、轉碼原理與 WebSphere 實戰配置

     編輯:關於JSP

編碼體系脈絡

  • GB2312-80:基礎中文字符集,6763 字,編碼範圍 A1-F7 A1-FE。
  • GBK:GB2312 超集,含 20902 字,範圍 8140-FEFE,Windows 內碼 (CP936),與 Unicode 1:1 映射。
  • GB18030-2000:國家標準,多位元組變長編碼,相容 GBK,支援少數民族字符。
  • Unicode/UTF-8:Java 內部統一採 UTF-16,網路傳輸建議 UTF-8。

Java 字符流轉換模型

位元組流 (特定編碼) --InputStreamReader(編碼)--> 字符流 (Unicode) --OutputStreamWriter(編碼)--> 位元組流 (特定編碼)

關鍵:指定正確編碼,否則 JVM 使用平台預設編碼導致轉碼錯誤。

JSP/Servlet 關鍵編碼點

環節設定方式預設值
JSP 原始檔讀取<%@ page pageEncoding="..." %>ISO-8859-1
回應輸出<%@ page contentType="text/html;charset=..." %>ISO-8859-1
請求參數解碼Filter: request.setCharacterEncoding("...")ISO-8859-1 (容器預設)
GET 參數解碼Tomcat: <Connector URIEncoding="UTF-8">ISO-8859-1
資料庫連線JDBC URL 參數 characterEncoding視驅動而定

WebSphere Application Server 3.5 專屬配置

  • 管理主控台 → Web 應用模組 → 編碼設定:將 請求編碼、回應編碼 皆設為 GBK 或 UTF-8。
  • 若應用需支援多語系,建議全鏈路 UTF-8,並於 web.xml 設定 Filter 統一請求/回應編碼。

亂碼成因與對策

  • ? 號:目標編碼無對應字符(如 UTF-8 字符寫入 GBK)。
  • 亂碼:編碼不匹配雙向轉換產生錯誤碼點。
  • 對策:全鏈路統一 UTF-8,原始檔存 UTF-8,pageEncoding=UTF-8,contentType=UTF-8,Filter 設 UTF-8,DB 連線 UTF-8,HTML Meta UTF-8。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved