Rumah > Java > javaTutorial > Bagaimana untuk Melaksanakan Pengekodan UTF-8 dengan betul dalam Aplikasi Web Java?

Bagaimana untuk Melaksanakan Pengekodan UTF-8 dengan betul dalam Aplikasi Web Java?

DDD
Lepaskan: 2024-12-25 03:12:12
asal
273 orang telah melayarinya

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

Mendapatkan Pengekodan UTF-8 dalam Java Webapps

Masalah: Melaksanakan pengekodan UTF-8 untuk menyokong bukan Latin aksara untuk teks dan khusus abjad.

Persekitaran:

  • Pembangunan: Windows XP
  • Pengeluaran: Debian
  • Pangkalan Data: MySQL 5.x
  • Pelayar: Firefox2, Opera 9.x, FF3, IE7, Google Chrome

Penyelesaian:

  1. Konfigurasikan pelayan Tomcat.xml:

    • Dayakan pengekodan UTF-8 untuk parameter GET:
  2. CharsetFilter:

    • Force Java app untuk mengendalikan semua permintaan dan respons dalam UTF-8.
    • Tambah penapis ini ke 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>
      Salin selepas log masuk
  3. Pengekodan Halaman JSP:

    • Nyatakan pengekodan untuk JSP halaman dalam web.xml atau tambahkan teg meta berikut pada setiap halaman:
  4. Sambungan JDBC:

    • Gunakan ?useEncoding=true&characterEncoding =UTF-8 berkaitan URL.
  5. Pangkalan Data dan Jadual MySQL:

    • Buat pangkalan data dan jadual dengan SET KARAKTER LALAI=utf8 COLLATE=utf8_swedish_ci.
  6. Konfigurasi Pelayan MySQL:

    • Tetapkan default-character-set=utf8 dalam my.ini (Windows) atau my.cnf (Linux).
  7. Prosedur dan Fungsi MySQL:

    • Nyatakan set aksara UTF-8 secara eksplisit, cth.:
      CIPTA FUNGSI ... MENGEMBALIKAN SET KARAKTER TEKS utf8

Mengendalikan Permintaan GET:

  • Secara lalai, URL dikodkan dalam Latin1, menyebabkan masalah dengan bukan ASCII aksara.
  • Untuk menangani perkara ini, takrifkan pengekodan URL dalam server.xml sebagai UTF-8.
  • Arahkan penyemak imbas untuk membaca halaman dalam UTF-8 menggunakan tag meta dan pengepala permintaan.

UTF-8 lwn. Latin1 dalam Permintaan GET:

  • Permintaan POS dikodkan dalam UTF-8 oleh pelayar.
  • Untuk permintaan GET, sementara halaman ditakrifkan sebagai UTF-8, sesetengah aksara mungkin masih dikodkan dalam Latin1. Ini mengakibatkan pengekodan bercampur, menyukarkan apl web untuk mengendalikan parameter permintaan dengan betul.

Rujukan:

  • 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 meters-mishandle-utf-8-encoding-td18720039.html
  • http://www.utoronto.ca/webdocs/HTMLdocs/NewHTML/iso_table.html
  • http://www. utf8-chartable.de/

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Pengekodan UTF-8 dengan betul dalam Aplikasi Web Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan