Пользователи, увидевшие непоследовательное представление текста Unicode в цикле запросов в Spring 3 MVC - PullRequest
1 голос
/ 14 декабря 2010

Во время тестирования моего приложения я заметил следующую проблему, когда строка, содержащая символ Unicode, когда передается в контроллер и затем возвращается на страницу, искажается - или, по крайней мере, не представляется последовательно - с точки зрения пользователя.

1. Xáeso
2. Xßeso
3. X%E1eso
  1. Текст, который я передаю в виде RequestParam со страницы на контроллер.
  2. Как это выводится в файл журнала сразу после чтения его из RequestParamв контроллере
  3. Текст, передаваемый из контроллера обратно клиенту после выхода из обработчика запроса.

Это единственное допустимое представление текста в той степени, в которой он будет отображаться пользователем.ожидайте увидеть:

1. Xáeso

Как я могу гарантировать, что символ Юникода в позиции 2 этой строки будет последовательно представлен пользователю приложения на стороне клиента?

Ответы [ 2 ]

1 голос
/ 14 декабря 2010

Есть несколько мест, где кодировка может пойти не так.

Быстрое решение может состоять в том, чтобы использовать пружинный CharacterEncodingFilter (или эквивалентный перехватчик) и установить кодировку на utf-8.Кроме того, ваши страницы JSP лучше иметь <%@ page pageEncoding="utf8" %>

0 голосов
/ 14 декабря 2010

Я предполагаю, что отчасти проблема в том, что веб-сервер (например, Tomcat) использует неправильный набор символов при преобразовании параметров запроса в UTF-16.

Если вы используете Tomcat, прочитайте FAQ по кодировке символов и проверьте каждую из перечисленных проблем. (Обратите особое внимание на то, что говорит о влиянии фильтров и клапанов ...)

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