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:
-
Konfigurasikan pelayan Tomcat.xml:
- Dayakan pengekodan UTF-8 untuk parameter GET:
-
CharsetFilter:
-
Pengekodan Halaman JSP:
- Nyatakan pengekodan untuk JSP halaman dalam web.xml atau tambahkan teg meta berikut pada setiap halaman:
-
Sambungan JDBC:
- Gunakan ?useEncoding=true&characterEncoding =UTF-8 berkaitan URL.
-
Pangkalan Data dan Jadual MySQL:
- Buat pangkalan data dan jadual dengan SET KARAKTER LALAI=utf8 COLLATE=utf8_swedish_ci.
-
Konfigurasi Pelayan MySQL:
- Tetapkan default-character-set=utf8 dalam my.ini (Windows) atau my.cnf (Linux).
-
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!