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

Tomcat 5.5.9 中文亂碼完整解決方案

     編輯:Java 程式設計入門

前言

在 J2EE Web 開發中,中文亂碼問題一直是開發者頭疼的難題。本文針對 Tomcat 5.5.9 環境,系統性地梳理從前端頁面到後端數據庫的完整編碼解決方案,助你徹底告別亂碼困擾。

一、HTML 頁面編碼聲明

無論是靜態 HTML 還是 Servlet 動態生成的頁面,都必須在 <head> 標籤中明確聲明字符編碼:

<head>
  <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
  <title>測試 GET && POST-Send</title>
</head>

這一步確保瀏覽器正確解析頁面字符,是解決亂碼的基礎。

二、JSP 與 Servlet 處理層編碼統一

1. 使用 Filter 統一設置 Request/Response 編碼

在 web.xml 中配置字符編碼過濾器:

<filter>
  <filter-name>SetCharsetEncodingFilter</filter-name>
  <display-name>SetCharsetEncodingFilter</display-name>
  <description>Set CharsetEncoding Filter</description>
  <filter-class>com.gg.comm.web.SetCharsetEncodingFilter</filter-class>
  <init-param>
    <param-name>encoding</param-name>
    <param-value>gb2312</param-value>
  </init-param>
</filter>
<filter-mapping>
  <filter-name>SetCharsetEncodingFilter</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>

Filter 核心代碼:

request.setCharacterEncoding(targetEncoding);
response.setContentType("text/html");
response.setCharacterEncoding(targetEncoding);

2. 解決 GET 請求參數亂碼

修改 ${Tomcat_home}/conf/server.xml 中的 Connector 配置,強制指定 URI 編碼為 GBK:

<!-- URIEncoding="GBK": 強制 GET 方法中文參數正確傳輸 注意:Tomcat 僅支援 GBK 規範,不可設為 gb2312 -->
<Connector URIEncoding="GBK" port="80" redirectPort="8443"
           maxSpareThreads="75" maxThreads="150" minSpareThreads="25">
</Connector>

關鍵點:Tomcat 只支援 GBK,不支援 gb2312,切勿混淆。

3. JSP 頁面指令聲明

在每個 JSP 頁面頂部添加 page 指令:

<%@ page contentType="text/html;charset=gb2312" language="java"%>
或
<%@ page pageEncoding="gb2312"%>

三、JDBC 與數據庫層編碼

  1. Java 程序統一處理:按指定編碼方式讀寫數據
  2. 數據庫編碼設置:將數據庫默認字符集修改為 GBK 或 GB2312

遵循「統一編碼原則」,從文件 → 編譯 → 載入 → 執行/傳輸/響應/請求的完整鏈路保持編碼一致,即可徹底解決 Web 應用中的中文問題。

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