Na stronie staram się pomóc, użytkownik może wpisać adres URL w przeglądarce, jak następujących znaków chińskich,Handling Kodowanie znaków w URI na Tomcat
http://localhost:8080?a=测试
Na serwerze, otrzymujemy
GET /a=%E6%B5%8B%E8%AF%95 HTTP/1.1
Jak widać, jest kodowany w UTF-8, a następnie zakodowany w adresie URL. Możemy obsłużyć to poprawnie, ustawiając kodowanie na UTF-8 w Tomcat.
Jednak czasami mamy kodowania latin1 na niektórych przeglądarkach,
http://localhost:8080?a=ß
zamienia
GET /a=%DF HTTP/1.1
Czy mimo to poprawnie obsłużyć w Tomcat? Wygląda na to, że serwer musi dokonać inteligentnego zgadywania. Nie spodziewamy się obsługiwać Latin1 poprawnie 100%, ale wszystko jest lepsze niż to, co teraz robimy, zakładając, że wszystko jest w UTF-8.
Serwer to Tomcat 5.5. Obsługiwane przeglądarki to IE 6+, Firefox 2+ i Safari na iPhonie.
możliwy duplikat [Wykryj kodowanie URI automatycznie w Tomcat] (http://stackoverflow.com/questions/2657515/detect-the-uri-encoding-automatically-in-tomcat) – Ryan