Невозможно установить кодировку символов с помощью sun-web.xml - PullRequest
1 голос
/ 18 марта 2010

Я пытаюсь отправить специальные символы, такие как испанские символы, со своей страницы на страницу JSP в качестве параметра формы. Когда я пытаюсь получить параметр, который я послал, он показывает это как "?" (Вопросительный знак). После поиска в ветке java.net я узнал, что у меня должна быть следующая запись в моем sun-web.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sun-web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Sun ONE Application Server 8.0 Servlet 2.4//EN" "http://www.sun.com/software/sunone/appserver/dtds/sun-web-app_2_4-0.dtd">
<sun-web-app>
<locale-charset-info default-locale="es">
<locale-charset-map locale="es" charset="UTF-8"/>
<parameter-encoding default-charset="UTF-8"/>
</locale-charset-info>
</sun-web-app>

Но с этим подходом это не сработало, но персонаж выглядит как "?".

Ответы [ 2 ]

3 голосов
/ 18 марта 2010

Попробуйте это, также убедитесь, что кодировали символ в UTF-8 перед отправкой их в форму или базу данных.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sun-web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Sun ONE Application Server 8.0 Servlet 2.4//EN" "http://www.sun.com/software/sunone/appserver/dtds/sun-web-app_2_4-0.dtd">

<sun-web-app>
<locale-charset-info default-locale="">
<locale-charset-map locale="" charset=""/>
<parameter-encoding default-charset="UTF-8"/>
</locale-charset-info>
</sun-web-app>

Это заставляет сервер применять кодировку символов к тому, что вы установили.

1 голос
/ 18 марта 2010

Вы только сконфигурировали кодировку параметров request . Что касается симптомов, вам также необходимо настроить кодировку response . На странице JSP обычно достаточно добавить следующую строку вверху:

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

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

Когда вы используете базу данных, другой возможной причиной является то, что база данных не настроена на использование UTF-8, так что символы уже хранятся как мусор, и как бы вы ни запрашивали ее, она всегда будет возвращать мусор. Рассмотрите это с независимым инструментом администратора БД. Если это действительно так, то вам также необходимо установить кодировку таблицы базы данных.

...