Шведские символы неправильно закодированы в Google App Engine - PullRequest
2 голосов
/ 28 августа 2011

Довольно простой вопрос, и меня смущает, что я сам не понял этого.

Что я должен сделать, чтобы строки, размещенные в моей HTML-форме, оставались в правильной кодировке, когда яобрабатывать их в моем веб-приложении Spring, размещенном на Google App Engine?

Предварительные условия: у меня есть страница, для которой я попробовал следующие кодировки:

meta http-эквивалент = "Content-Type" content = "text / html; charset = ISO-8859-1 "

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

Когда кто-то публикует форму на странице, например, со шведскими символамиЗатем я получаю вопросительные знаки в своем коде сервлета, когда смотрю на опубликованную строку (в отладчике или в сохраняемой строке на развернутом сервере).(Кажется, это в некоторой степени экранированная последовательность, поскольку буква после моего шведского письма также удаляется в строке).

Следует ли изменить кодировку на странице или каким-либо образом изменить кодировку сервлета GAE?

1 Ответ

1 голос
/ 29 августа 2011

Я использую фильтр сервлетов, который кодирует 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>

Я не уверен, что это требуется, это просто из моего шаблона для проектов GAE (и любого другого проекта на базе Spring), я имею в виду, что я не пробовал это без этого фильтра. Но с этим все работает нормально, никаких проблем с кодированием.

И конечно, я всегда использую UTF-8 для страниц

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...