Cara Memastikan Pengekodan UTF-8 dalam Aplikasi Web Java
Untuk mendayakan pengekodan UTF-8 dalam apl web Java anda, ikut langkah berikut:
1. Konfigurasikan pelayan Tomcat.xml
Tambah baris berikut untuk mendayakan pengekodan UTF-8 untuk parameter URL (GET request):
<Connector port="8080" ... URIEncoding="UTF-8" ... />
2. Laksanakan Penapis Set Aksara
Tentukan penapis untuk memaksa apl web mengendalikan semua permintaan dan respons sebagai UTF-8 dikodkan:
import javax.servlet.*; public class CharsetFilter implements Filter { private String encoding = "UTF-8"; @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain next) throws ServletException, IOException { request.setCharacterEncoding(encoding); response.setContentType("text/html; charset=UTF-8"); response.setCharacterEncoding("UTF-8"); next.doFilter(request, response); } }
3. Tambahkan Penapis pada web.xml
Daftar penapis dalam deskriptor penggunaan:
<filter> <filter-name>CharsetFilter</filter-name> <filter-class>fi.foo.filters.CharsetFilter</filter-class> </filter> <filter-mapping> <filter-name>CharsetFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
4. Tetapkan Pengekodan Halaman JSP
Tentukan pengekodan halaman dalam web.xml:
<jsp-config> <jsp-property-group> <url-pattern>*.jsp</url-pattern> <page-encoding>UTF-8</page-encoding> </jsp-property-group> </jsp-config>
5. Gunakan HTML-Meta Tag
Nyatakan pengekodan yang digunakan oleh halaman HTML:
<meta http-equiv='Content-Type' content='text/html; charset=UTF-8' />
6. Konfigurasikan Sambungan JDBC
Nyatakan pengekodan UTF-8 untuk sambungan pangkalan data:
<Resource ... url="jdbc:mysql://localhost:3306/ID_development?useEncoding=true&amp;characterEncoding=UTF-8" ... />
7. Cipta Jadual dengan Pengumpulan UTF-8
Pastikan semua jadual pangkalan data mempunyai pengumpulan UTF-8:
CREATE TABLE `Users` ( `id` int(10) unsigned NOT NULL auto_increment, `name` varchar(30) collate utf8_swedish_ci default NULL PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_swedish_ci ROW_FORMAT=DYNAMIC;
8. Semak Konfigurasi Pelayan MySQL
Sahkan bahawa pelayan dikonfigurasikan untuk menggunakan UTF-8 sebagai set aksara lalai:
[client] default-character-set=utf8 [mysql] default-character-set=utf8
Nota:
Walaupun aksara Cyrillic seperti "ж" boleh dikendalikan melalui permintaan GET dengan pengekodan UTF-8, aksara seperti "ä" mungkin dikodkan dalam bahasa Latin1 (ISO-8859-1), menyebabkan ketidakkonsistenan.
Atas ialah kandungan terperinci Bagaimana untuk Menjamin Pengekodan UTF-8 Sepanjang Aplikasi Web Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!