Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Melaksanakan Pengekodan UTF-8 dengan Benar dalam Aplikasi Web Java?

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

Barbara Streisand
Barbara Streisandasal
2024-12-29 20:56:10306semak imbas

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

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&amp;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!

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