robie prosty wywołanie ajax z biblioteką YahooUI Javascript następująco:kodowanie UTF-8 i HTTP parametry
YAHOO.util.Connect.setForm('myform');
YAHOO.util.Connect.asyncRequest('POST', url, ...);
są następujące ustawienia w moim app: Tomcat wersja: 6.0.18
złącze serwer Tomcat: URIEncoding = "UTF-8" strona webapp:
stwierdzono także w YahooUI docs bibliotecznych złącze:
setForm zakoduje każdą nazwę pola HTML o nazwie i wartości pola przy użyciu encodeURIComponent. W rezultacie powstaje ciąg znaków kodowanych w UTF-8 o wartości nazwy . UWAGA: Ustawienie nagłówka HTTP z "Content-Type" z inną wartością znaków zestawu znaków nie zmieni kodowania danych serialized.encoding zserializowanych danych.
widzę, że francuskie znaki, które są wysyłane jako parametry są kodowane (w IE7 korzystając iehttpheader narzędzie):
name=%C3%88%C3%A0%C3%B4
testParam=%C3%B4%C3%B4
Dla danych: nazwę: EAO i testParam: OO
Ale po stronie serwera widzę wartości w następujący sposób: ÃÂàÃÂ
Nawet jeśli jestem conv erting string do bajtów, a następnie utwórz nowy ciąg znaków z zestawem znaków zdefiniowanym w następujący sposób: String val = new String (oo.getBytes ("UTF-8")); Nie mogę uzyskać dokładnych danych zgodnie z oczekiwaniami.
Uwaga: odniosłem się do pytania poniżej, ale nie udało się rozwiązać tego problemu: How to get UTF-8 working in Java webapps? Proszę wskazać.
UPDATE: Wywołanie dekodowania UTF-8 funkcji, jak podano na stronie w3.org http://www.w3.org/International/O-URL-code.html daje mi oczekiwanych rezultatów. Oczekuję, że Tomcat to rozszyfruje ?.
Tak to działało - musiałem upewnić się, że filtr który ja stosuje (SetCharacterEncodingFilter - który jest dostępny w folderze przykładów tomcat) musiał być pierwszy, który jest Wywołany przed innymi filtrami i zadziałał !. Dzięki :) – Anna
Oto inny link użytkowania, ponieważ powyższy wydaje się zepsuty: http://azizsaboor.wordpress.com/2008/06/10/spring-utf-8-conversion-using-characterencodingfilter/ –