Çin'in karmaşık java web ve tomcat sunucusu sorununa mükemmel bir çözüm (koleksiyon yedekleri)

Bir Java Web projesinde, bir Tomcat sunucusu kullanıyorsanız, verilerle etkileşim kurarken genellikle Çince'nin bozuk olmasıyla ilgili bir sorun olacaktır. Nedenler temel olarak aşağıdaki iki kısma ayrılabilir:

1. JSP sayfasında, Çince hiç görüntülenemez.

Bu durumda, genel nedenler şunlardır:

Dosya başlığının karakter seti Çince karakter setine ayarlanmamıştır.

Çözüm: Aşağıdakileri dosya başlığına yazın:

veya

utf-8 kodlaması, her ikisi de Çince karakter kümeleri olan gb2312 karakter kümesiyle de değiştirilebilir, ancak genellikle utf-8 kullanılır

2. Gönderim sırasında bozuk karakterler görüntüleniyor

Gönderim işlemi sırasında görüntülenen bozuk karakterler, Çince karakterler tomcat sunucusundan geçtikten sonra IDE konsolunda oluşturulan hatalı Çince karakterlere, gönderilen sayfaya vb. Atıfta bulunur.

İstemcide veya tarayıcıda bozuk mu yoksa sunucuda mı bozuk olduğunu belirlemek için URL'deki Çince parametresinin bozuk olup olmadığını görmek için genellikle bu Çince parametresini URL üzerinden geçirebiliriz.

Çince verilerini sunucuya gönderirken, hatalı Çince karakterlerin nedenleri şunlardır:

Sunucuya Çince karakterler gönderildiğinde, sunucu varsayılan olarak ISO-8859-1 kodlamasını kullanır ve web sayfası uyumlu olmayan utf-8 veya gb2312 kodlamasını kullanır.

Üç çözüm var:

(1) Çince dizeleri doğrudan utf-8 formatına dönüştürün

Bu yöntem, Çince karakter dizesini doğrudan Çince'yi destekleyen bir kodlamaya dönüştürmektir, ancak bu yöntem her karakter dizesini dönüştürmelidir, bu çok doğrudan ama çok zahmetlidir.

(2) İsteğin kodlama yöntemini doğrudan değiştirin

Çin kodlamasını desteklemek için isteğin kodlamasını değiştirebilirsiniz, böylece tüm sayfadaki tüm istekler otomatik olarak Çince'ye dönüştürülebilir.

Ancak bu yöntemin değeri çıkarmadan önce istek kodlamasını ayarlaması gerektiği ve form gönderme yönteminin post olması gerektiği ve bu yöntemin de her sayfa için isteği ayarlaması gerektiği unutulmamalıdır ki bu da oldukça zahmetlidir.

(3) Filtreleri kullanın

Büyük ölçekli bir projede, her dosya için kodlamayı ayarlamak çok zahmetlidir, bu nedenle projede genellikle Tomcat Chinese problemini çözmek için filtreler kullanılır.

Filtreleri kullanarak, tüm Web uygulamasında birleşik kodlama ve filtreleme gerçekleştirebilirsiniz, bu daha rahattır.

Not: Filtrelerin kullanımı ayrıca form gönderme yönteminin gönderilmesini gerektirir, varsayılan olarak ayarlanmadıysa form gönderme yöntemi get

Filtre yöntemi yazın:

İlk olarak, EncodingFilter'ın java sınıfını oluşturun, kod aşağıdaki gibidir

paket Filtresi;

içe aktar javax.servlet. *;

import javax.servlet.annotation.WebFilter;

java.io.IOException ithalatı;

@WebFilter (filterName = "EncodingFilter")

public class EncodingFilter, Filter {

public void destroy () {

}

public void doFilter (ServletRequest req, ServletResponse resp, FilterChain zinciri) ServletException, IOException {

req.setCharacterEncoding ("utf-8");

chain.doFilter (req, resp);

}

public void init (FilterConfig yapılandırması) ServletException {

}

}

Ardından web.xml'yi yapılandırın

Unutulmamalıdır ki web.xml etiketlerinin belirli bir sırada olduğu ve sıra doğru değilse öğe türü "web-app" eşleşmelidir "hatası bildirilecektir.

Örneğin, filtre gibi etiketler sunucu uygulamasının önüne yerleştirilmelidir.

Yeniden gönderin ve yeniden başlatın, bozuk Çince sorunu başarıyla çözüldü (ayrıca formun postalama yöntemi olmasını gerektirir)

---------------------

GIF: VAR değişikliği etkili! Bakambu tatili, Guoan 2-0 Suning
önceki
Pitoresk sabah ve sonbahar manzarası
Sonraki
Sonbaharın sonlarında Harbin, güzel sonbahar manzarası
Hala bahar mvc kullanıyor musunuz, neden Ali'nin açık kaynak çerçevesi webx'ini denemiyorsunuz (webx çerçevesine giriş)
Nokia X gerçek makine planlanandan önce tanıtıldı: Liu Haiping + logo ön + çift kamera
WeChat Moments'taki yeni özellik, netizenler: "Arkadaşlar" tekrar kaybolmak üzere
İki hava durumu patronu sahneye çıktı! Gel ve evine kimin geldiğini gör
Birisi Tsai Ing-wen'e sordu: Kıta Ordusu makinesini vurun!
Sonbaharda nerelerdeydin
10 yılda 4 ölü bebek doğurdu ve 20 yıl boyunca kokuları örtmek için oda spreyleri kullanarak evde sakladı ...
Yabancı medya yine çıldırdı iPhone SE2 böyle görünüyorsa kabul edebilir misiniz?
Zunhua, Hebei: altın hasat mevsimi
Açık kaynak http hızlandırıcı verniğe giriş eğitimi (zirveleri kesme ve vadileri doldurma)
Sincan Urumçi, bu yılın ikinci yarısında ilk kar fırtınasını karşılıyor
To Top