Rumah >Java >javaTutorial >Soalan dan Penyelesaian Lazim: Menyelesaikan Masalah Tomcat Chinese Garbled

Soalan dan Penyelesaian Lazim: Menyelesaikan Masalah Tomcat Chinese Garbled

WBOY
WBOYasal
2023-12-28 18:14:161159semak imbas

Soalan dan Penyelesaian Lazim: Menyelesaikan Masalah Tomcat Chinese Garbled

Masalah dan penyelesaian biasa kepada watak bercelaru Tomcat Cina

Pengenalan
Tomcat ialah pelayan web Java yang biasa digunakan dan sering digunakan untuk membangunkan dan menggunakan aplikasi web. Walau bagaimanapun, atas pelbagai sebab, Tomcat kadangkala menemui aksara Cina yang kacau-bilau, menyebabkan keabnormalan dalam paparan halaman dan penghantaran data. Artikel ini akan memperkenalkan beberapa masalah kod kacau bahasa Cina biasa, dan menyediakan penyelesaian serta contoh kod khusus untuk membantu pembangun menyelesaikan masalah kod kacau bahasa Cina dalam Tomcat.

1. Aksara Cina bercelaru dalam URL dan penyelesaian

  1. Penerangan masalah
    Apabila parameter yang mengandungi aksara Cina dihantar dalam URL, Tomcat akan mengekod aksara Cina secara lalai untuk memastikan keselamatan penghantaran. Walau bagaimanapun, kadangkala kami ingin memaparkan aksara Cina secara langsung dalam URL, tetapi Tomcat akan menukarnya ke dalam bentuk bercelaru.
  2. Penyelesaian
    Masalah ini boleh diselesaikan dengan mengubah suai konfigurasi penapis pengekodan dalam fail web.xml. Tambahkan konfigurasi berikut pada fail web.xml:
<filter>
    <filter-name>encodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>encodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

Dengan cara ini, Tomcat akan memproses aksara Cina dalam URL sebagai UTF-8 untuk mengelakkan aksara bercelaru.

2. Aksara Cina bercelaru dalam parameter permintaan dan penyelesaiannya

  1. Penerangan masalah
    Apabila aplikasi menerima parameter permintaan daripada pengguna yang mengandungi aksara Cina, jika ia tidak diproses dengan betul, ia akan menyebabkan aksara bercelaru. Contohnya, apabila memproses permintaan GET, Tomcat menyahkod dalam ISO-8859-1 secara lalai dan bukannya UTF-8.
  2. Penyelesaian
    Masalah ini boleh diselesaikan dengan menambahkan parameter URIEncoding dalam fail server.xml Tomcat. Cari dan ubah suai konfigurasi berikut:
<Connector port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443"
               URIEncoding="UTF-8" />

Dengan cara ini, Tomcat akan memproses parameter permintaan dalam pengekodan UTF-8 untuk mengelakkan aksara Cina yang kacau. .

Penyelesaian

Dalam halaman JSP atau Servlet, anda perlu menyatakan secara eksplisit pengekodan aksara halaman sebagai UTF-8. Anda boleh menetapkan pengekodan dengan menambahkan kod berikut pada halaman JSP:
  1. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

    Atau, tambahkan kod berikut pada Servlet untuk menetapkan pengekodan:
  2. response.setContentType("text/html;charset=UTF-8");
  3. Dengan cara ini, Tomcat akan menggunakan UTF-8 untuk pengekodan apabila kembali halaman untuk memastikan paparan halaman aksara Cina adalah normal.
  4. Ringkasan
Masalah kacau Tomcat Chinese adalah salah satu masalah biasa dalam pembangunan web. Artikel ini menyediakan penyelesaian kepada masalah aksara Cina yang kacau dalam URL, parameter permintaan dan halaman respons dalam Tomcat dan memberikan contoh kod khusus. Dengan melaraskan konfigurasi berkaitan Tomcat dan pemprosesan pengekodan, masalah aksara Cina yang bercelaru dapat diselesaikan dengan baik dan operasi biasa aplikasi web dapat dipastikan. Saya harap artikel ini dapat membantu pembaca lebih memahami dan menyelesaikan masalah watak bercelaru Cina dalam Tomcat.

Atas ialah kandungan terperinci Soalan dan Penyelesaian Lazim: Menyelesaikan Masalah Tomcat Chinese Garbled. 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