Дополнительный символ Ascii '' добавлен в запрос JSP - PullRequest
2 голосов
/ 06 декабря 2009

Я сталкиваюсь с той же проблемой в tomcat & jsp, которая указана в приведенной ниже проблеме asp Классические ASP gremlims, вставляющие Â в текст при каждом использовании специального символа HTML

Использование Tomcat 5 и JSP. Когда я набираю строку, содержащую примерно ± 20 ° C, и отправляю ее в другой JSP, результирующий параметр после отправки составляет ± 20 ° C. Добавочный символ 'Â' добавляется перед каждым специальным символом в самом запросе. Как мне решить эту проблему?

Спасибо,

Ответы [ 5 ]

6 голосов
/ 07 декабря 2009

Это вызвано отображением страницы UTF-8 как Latin-1. Например, ± кодируется как 0xB1 в Latin-1, но 0xC2, 0xB1 в UTF-8. 0xC2 оказывается В.

Это немного странно для страницы JSP. Обычно JSP будет использовать одну и ту же кодировку в модуле записи и заголовке «Content-Type», поэтому вы всегда получаете одинаковую кодировку. Проверьте, указываете ли вы кодировку, подобную этой,

<%@page pageEncoding="UTF-8" %>

Если у вас есть собственный заголовок «Content-Type», обязательно добавьте «, charset = UTF-8».

1 голос
/ 06 декабря 2009

Попробуйте

<%@ page pageEncoding="utf-8" %>

и

request.setCharacterEncoding("utf-8");
1 голос
/ 06 декабря 2009

У меня была похожая проблема, которая, похоже, теперь исправлена ​​после изменения следующей строки в блоке .

<meta http-equiv="content-type" content="text/html; charset=utf-8" />

Важно utf-8!

Надеюсь, это поможет.

1 голос
/ 06 декабря 2009

Это признак ISO-Latin-любых исходных данных, которые транскодируются в UTF-8 при выходе. Проверьте кодировки вашего персонажа.

0 голосов
/ 07 декабря 2009

К моменту: на каждом шаге, где происходит преобразование byte - char, необходимо указывать одинаковую и правильную кодировку символов везде. Чтобы охватить любого человека в мире, UTF-8 является идеальным выбором.

Есть несколько шагов, которые необходимо указать для этой кодировки: синтаксический анализ GET параметры запроса (настраивается в настройках appserver), синтаксический анализ POST тело запроса (настраивается с помощью фильтра), запись в поток ответов (настраивается с помощью @page pageEncoding в JSP или HttpServletResponse#setCharacterEncoding() в сервлете), чтение / запись в базу данных (настраивается в самой таблице БД), чтение / запись в файлы (настраивается с помощью InputStreamReader и OutputStreamWriter).

Более подробную справочную информацию и полные решения кода можно найти в этой статье .

Надеюсь, это поможет.

...