Hi, This thread is a few months old now but I have the same problem now... Scandinavian characters aren't encoded and decoded in the same way when using ajax POST requests and tomcat.
To me the problem seems to be that wicket does not specify the encoding in the ajax request. When tomcat receives the request and doesn't find an attached encoding, it defaults to ISO-8859-1 (in my case anyway). If I change the "Content-Type" header from "application/x-www-form-urlencoded" to "application/x-www-form-urlencoded; charset=UTF-8" by patching the wicket-ajax.js file, it works for me! Did anyone find another solution to this? Nils -----Opprinnelig melding----- Fra: Johan Compagner [mailto:[EMAIL PROTECTED] Sendt: 22. oktober 2007 23:00 Til: [email protected] Emne: Re: Weird Ajax non-English characters encoding problem. is this reproduceable in a simple testcase? (junit) johan On 10/22/07, Paolo Di Tommaso <[EMAIL PROTECTED]> wrote: > > I'm experiencing a similar problem i.e. I'm able to submit any Latin > encoded characters but when I'm using an AjaxSubmitButton some characters > are not encoded properly. This happens also specifying the right encoding > with: > > getRequestCycleSettings().setResponseRequestEncoding("ISO-8859-1"); > > > So it appears to be clear that is an ajax encoding problem with wicket. > > > Looking at the Wicket ajax code I found the following fragment: > > if (t != null) { > t.open("POST", url, this.async); > t.onreadystatechange = this.stateChangeCallback.bind(this); > t.setRequestHeader("Content-Type", > "application/x-www-form-urlencoded"); > t.setRequestHeader("Wicket-Ajax", "true"); > t.send(body); > return true; > } else { > this.failure(); > return false; > } > > > Now, how is defined the content encoding of an ajax request? I was > expecting > something like charset=<defined encoding> in the ajax request request > header. > > Otherwise how the IRequestCycleSettings#setResponseRequestEncoding() will > affect the charset definition in the ajax call? > > Thanks, > > Paolo > > > On 10/22/07, Fabio Fioretti <[EMAIL PROTECTED]> wrote: > > > > Hi Matej and Johan, > > > > thanks for your replies. > > > > I'm using Latin1 because the page I'm talking about is part of a > > legacy web application fully encoded in ISO-8859-1. The application > > server it runs on is Tomcat 5.5, which defaults to Latin1, so it > > shouldn't be a problem. > > > > I tried to set the request/response encoding in the application main > > class using: > > > > getRequestCycleSettings().setResponseRequestEncoding("ISO-8859-1"); > > > > but nothing changed, except that Wicket Ajax Debug now prints: > > > > INFO: > > <?xml version="1.0" > encoding="ISO-8859-1"?><ajax-response></ajax-response> > > > > The problem I'm facing seems the same Stefan Lindner faced last year, > > whithout apparently finding a solution. I tried everything he tried. > > See link: > > > > > http://www.nabble.com/AjaxSubmitButton-and-Umlauts-with-ISO-8859-1-%28Wicket-2%29-tf2622064.html > > > > > > I could migrate the whole application to UTF-8, but I would't do that > > for a single textarea in a single page... :-) It's the only page that > > needs non-English input. > > > > > > Any suggestion? > > > > > > Thanks a lot, > > > > Fabio Fioretti - WindoM > > > > > > On 10/21/07, Matej Knopp <[EMAIL PROTECTED]> wrote: > > > I don't know tbh. I believe the request body is encoded in UTF-8. > > > People usually use UTF-8, so no-one was complaining before. Can't you > > > just use UTF-8? It's much safer than latin1. > > > > > > -Matej > > > > > > On 10/20/07, Johan Compagner < [EMAIL PROTECTED]> wrote: > > > > are you configuring wicket and you appserver correctly? > > > > in wicket you have to set the encoding you want to use > > > > why not just use utf8? > > > > else matej? > > > > How does the ajax submit work with encoding? > > > > It is still a normal post and how do we interpret it? > > > > > > > > > > > > On 10/19/07, Fabio Fioretti < [EMAIL PROTECTED]> wrote: > > > > > Hi all, > > > > > > > > > > thanks in advance for your time and suggestions. > > > > > > > > > > I'm building a really simple page made up of a form with a text > area > > > > > > > and a submit button (instance of Button). An > AjaxFormSubmitBehavior > > > > > that performs the "save" operation is added to the button. The > page > > is > > > > > encoded as follows: > > > > > > > > > > <meta http-equiv="Content-Type" content="text/html; > > charset=ISO-8859-1"> > > > > > > > > > > Everything works fine until a user submits a non-English text > > (French > > > > > or Spanish, with characters like "íéñ", still supported by the > > > > > ISO-8859-1 encoding): all non-English characters are scrambled. > > > > > > > > > > What appears weird to me is that the problem doesn't happen if I > > use, > > > > > for example, a SubmitLink instead of an Ajax-enabled Button. > > > > > > > > > > This makes me point to Ajax as the responsible, and to the fact > that > > > > > Wicket uses UTF-8 for requests... but I really have no clue about > > how > > > > > to fix it. > > > > > > > > > > Any idea? > > > > > > > > > > > > > > > Thank you very much and have a nice week-end. > > > > > > > > > > Fabio Fioretti - WindoM > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > This email was Anti Virus checked by Signicat AS --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
