Trên trang web tôi đang cố gắng để giúp đỡ với, người dùng có thể gõ vào một URL trong trình duyệt, giống như chữ Hán sau,Xử lý Character Encoding trong URI trên Tomcat
http://localhost:8080?a=测试
Trên máy chủ, chúng tôi nhận
GET /a=%E6%B5%8B%E8%AF%95 HTTP/1.1
Như bạn thấy, mã UTF-8 được mã hóa, sau đó URL được mã hóa. Chúng ta có thể xử lý chính xác bằng cách thiết lập mã hóa thành UTF-8 trong Tomcat.
Tuy nhiên, đôi khi chúng ta có được mã hóa latin1 trên các trình duyệt nhất định,
http://localhost:8080?a=ß
biến thành
GET /a=%DF HTTP/1.1
Có anyway để xử lý này một cách chính xác trong Tomcat? Có vẻ như máy chủ phải thực hiện một số phỏng đoán thông minh. Chúng tôi không mong đợi để xử lý Latin1 chính xác 100% nhưng bất cứ điều gì là tốt hơn so với những gì chúng tôi đang làm bây giờ bằng cách giả sử tất cả mọi thứ là UTF-8.
Máy chủ là Tomcat 5.5. Các trình duyệt được hỗ trợ là IE 6+, Firefox 2+ và Safari trên iPhone.
có thể trùng lặp của [Phát hiện mã hóa URI tự động trong Tomcat] (http://stackoverflow.com/questions/2657515/detect-the-uri-encoding-automatically-in-tomcat) – Ryan