首頁 > Java > java教程 > 如何在 Java Web 應用程式中正確實作 UTF-8 編碼?

如何在 Java Web 應用程式中正確實作 UTF-8 編碼?

DDD
發布: 2024-12-25 03:12:12
原創
280 人瀏覽過

How to Properly Implement UTF-8 Encoding in a Java Web Application?

在 Java Web 應用程式中取得 UTF-8 編碼

問題:實作 UTF-8編碼以支援非拉丁文文字和特定字元

環境:

  • 開發:Windows XP
  • 製作:Debian
  • 資料庫:MySQL 5.x
  • 瀏覽器:Firefox2、Opera 9.x、 FF3、IE7、Google Chrome

解決方案:

  1. 配置Tomcat的server.xml:

    • 為GET 啟用UTF-8 編碼參數:
  2. CharsetFilter:

    • 強制Java應用程序處理所有請求和響應UTF- 8。
    • 將此過濾器加入到web.xml:

      <filter>
        <filter-name>CharsetFilter</filter-name>
        <filter-class>fi.foo.filters.CharsetFilter</filter-class>
        <init-param>
          <param-name>requestEncoding</param-name>
          <param-value>UTF-8</param-value>
        </init-param>
      </filter>
      <filter-mapping>
        <filter-name>CharsetFilter</filter-name>
        <url-pattern>/*</url-pattern>
      </filter-mapping>
      登入後複製
  3. JSP 頁面編碼:


    • 指定JSP 頁面的編碼web.xml或在每個頁面上新增以下元標記:
  4. JDBC 連線:

    • 使用?useEncoding=true&characterEncoding =連線中的UTF-8 URL。
  5. MySQL 資料庫與表格:

    • 使用預設字元集=utf8建立資料庫與表格COLLATE=utf8_swedish_ci.
  6. MySQL 伺服器設定:

    • 在設定中character-set=utf8 (Windows) 或my.cnf (Linux).
  7. MySQL 過程和函數:

    • 明確指定UTF-8 字元集,例如:
      建立函數...返回文字字元集utf8

處理GET 要求:

  • 預設情況下, URL 採用Latin1 編碼,導致非ASCII 出現問題字元。
  • 要解決此問題,請在 server.xml 中將 URL 編碼定義為UTF-8。
  • 指示瀏覽器使用元標記和請求標頭讀取 UTF-8 格式的頁面。

GET 請求中的UTF-8 與Latin1:

  • POST 請求以UTF-8 編碼
  • 對於GET GE ,雖然頁面定義為UTF-8,但某些字元可能仍以Latin1 編碼。這會導致混合編碼,使得Web應用程式很難正確處理請求參數。

參考:

  • http://tagunov.tripod.com/i18n/i18n.html
  • http://wiki.apache.org/tomcat/Tomcat/UTF-8
  • http://java.sun.com/developer/technicalArticles/Intl/HT TPCharset/
  • http://dev.mysql.com/doc/refman/5.0/en/charset-syntax.html
  • http://cagan327.blogspot.com/2006/05 /utf-8-encoding-fix-tomcat-jsp-etc.html
  • http://cagan327.blogspot.com/2006 /05/utf-8-encoding-fix-for-mysql-tomcat.html
  • http://jeppesn.dk/utf- 8.html
  • http://www.nabble .com/request-para metres-mishandle-utf-8-encoding-td18720039.html
  • http://www.utoronto.ca/webdocs/HTMLdocs/NewHTML/iso_table.html
  • http://www.utoronto.ca/webdocs/HTMLdocs/NewHTML/iso_table.html
http://www.utoronto.ca/webdocs/HTMLdocs/NewHTML/iso_table.html utf8-chartable.de/

以上是如何在 Java Web 應用程式中正確實作 UTF-8 編碼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板