2
votes

A pretty basic question, and I'm embaressed that I havn't figured it out my self.

What should I do to make the strings posted on my HTML form stay in the correct encoding when I handle them in my Spring web app hosted on Google App Engine?

Prerequisites: I have a page which I have tried the following encodings for:

meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"

meta http-equiv="Content-Type" content="text/html; charset=UTF-8"

When someone posts a form on the page with for example Swedish characters åäö then I get questionmarks in my servlet code when I look at the posted string (in a debugger or in the persisted string on the deployed server). (It seems to be an escaped sequence in some way since the letter after my Swedish letter is also deleted in the string).

Should I change encoding on the page or in some way change the encoding of GAE servlet?

1
same with Spanish ñ, are you using @ResponseBody btw ? - Jordi P.S.
No, that application did not use Spring MVC if I remember correctly. - Johan Norén

1 Answers

1
votes

I'm using servlet filter, that forces encoding to be UTF-8:

<filter>
    <filter-name>Set Character Encoding</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
    <init-param>
       <param-name>forceEncoding</param-name>
       <param-value>true</param-value>
    </init-param>
</filter>
 <filter-mapping>
    <filter-name>Set Character Encoding</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

I'm not sure that it required, it's just from my template for GAE projects (and any other Spring-based project), I mean I didn't tried it without this filter. But with it, it's working fine, no encoding problems at all.

And sure, i'm always using UTF-8 for pages