Cara Melaksanakan UTF-8 dalam Aplikasi Web Java
Memahami Masalah
UTF -8 pengekodan adalah penting untuk menyokong aksara antarabangsa, termasuk abjad khas seperti Finland dan Cyrillic, dalam web Java aplikasi.
Membuat Penyelesaian
Untuk menyelesaikan isu ini, ikut langkah berikut:
1. Konfigurasikan pelayan Tomcat.xml:
Konfigurasikan penyambung untuk mengekod parameter URL menggunakan UTF-8:
<Connector port="8080" ... URIEncoding="UTF-8"/>
2. Buat CharsetFilter:
Tentukan penapis untuk memastikan semua permintaan dan respons dikendalikan dalam UTF-8:
public void doFilter(ServletRequest request, ServletResponse response, FilterChain next) throws IOException, ServletException { // Set the default character encoding request.setCharacterEncoding("UTF-8"); response.setContentType("text/html; charset=UTF-8"); response.setCharacterEncoding("UTF-8"); next.doFilter(request, response); }
3. Tambahkan Penapis pada 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>
4. Tetapkan Pengekodan Halaman JSP:
Dalam web.xml:
<jsp-config> <jsp-property-group> <url-pattern>*.jsp</url-pattern> <page-encoding>UTF-8</page-encoding> </jsp-property-group> </jsp-config>
Sebagai alternatif, dalam setiap halaman JSP:
<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%>
5. Nyatakan Tag Meta HTML:
Pastikan pelayar memahami pengekodan halaman HTML:
<meta http-equiv='Content-Type' content='text/html; charset=UTF-8' />
6. Konfigurasikan Sambungan JDBC:
<Resource name="jdbc/AppDB" ... url="jdbc:mysql://localhost:3306/ID_development?useEncoding=true&characterEncoding=UTF-8"/>
7. Sediakan Pangkalan Data dan Jadual MySQL:
Buat pangkalan data dan jadual menggunakan UTF-8:
CREATE DATABASE `ID_development` ... COLLATE utf8_swedish_ci; CREATE TABLE `Users` ... COLLATE utf8_swedish_ci;
8. Konfigurasikan Pelayan MySQL:
Dalam my.ini atau my.cnf, tetapkan set aksara lalai:
[client] default-character-set=utf8 [mysql] default-character-set=utf8
9. Kodkan Permintaan GET Dengan Betul:
Diarahkan oleh Tomcat, penyemak imbas harus mengekod parameter permintaan GET dalam UTF-8.
Latin1 dan UTF-8 dalam Permintaan GET:
HTTP lalai kepada Latin1 untuk pengekodan URL, menghasilkan pengekodan yang berbeza untuk beberapa aksara seperti "ä." Ini menimbulkan cabaran untuk permintaan pengendalian aplikasi web.
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Pengekodan UTF-8 dengan Benar dalam Aplikasi Web Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!