:UTF-8 kodlaması ve http parametreleri
YAHOO.util.Connect.setForm('myform');
YAHOO.util.Connect.asyncRequest('POST', url, ...);
Aşağıdakiler benim app ayarları: Tomcat sürümü: 6.0.18
Tomcat sunucusu konektörü: URIEncoding = "UTF-8" webapp sayfa: Ayrıca YahooUI konnektör kütüphane docs belirtilen
:
setForm her bir HTML formunu alanın adını ve değerini encodeURIComponent kullanarak kodlayacaktır. Bu, dizgisi UTF-8 kodlu, ad değeri çiftleri ile sonuçlanır. NOT: "Content-Type" HTTP üstbilgisini farklı bir charset değeriyle ayarlamak, serileştirilmiş verilerin serileştirilmiş data.encoding'inin kodlamasını değiştirmez.
Ben parametre olarak gönderiliyor fransız karakterler (aletini iehttpheader kullanarak ie7 cinsinden) kodlanmış olduğunu görebilirsiniz: veriler için
name=%C3%88%C3%A0%C3%B4
testParam=%C3%B4%C3%B4
: adı: EAO ve testParam:
ooFakat sunucu tarafında aşağıdaki gibi değerleri görüyorum: ÃÂàワã
Ben dönüşüm olsam bile dizeyi byte'lara yönlendirmek ve sonra aşağıdaki gibi tanımlanan karakter kümesiyle yeni dize oluşturmak: String val = new Dize (oo.getBytes ("UTF-8")); Tam verileri beklendiği gibi alamıyorum.
Not: Aşağıdaki soruya referansta bulunulmuştur, ancak bu sorunu çözemedik: How to get UTF-8 working in Java webapps? Lütfen yönlendirin.
GÜNCELLEME: Bana beklenen sonuçlar veriyor W3.org sitesinde http://www.w3.org/International/O-URL-code.html üzerinde verildiği gibi kod çözme UTF-8 fonksiyonu çağrılıyor. Tomcat'ın bunu çözmesini bekliyorum.
Evet bu çalıştı - Ben başvurduğunu filtre hangi sağlamak zorunda (SetCharacterEncodingFilter - tomcat örnekler klasöründe kullanılabilir) 'dir ilki olmak zorunda diğer filtrelerimden önce çağrıldı ve işe yaradı! Teşekkürler :) – Anna
Yukarıdaki yukarıdaki kırık gibi görünüyor başka bir kullanım bağlantısı: http://azizsaboor.wordpress.com/2008/06/10/spring-utf-8-conversion-using-characterencodingfilter/ –