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:
- 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>
-
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!
Kenyataan: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