Я занимаюсь разработкой приложения, которое должно работать на разных языках (немецкий, испанский и т. Д.). Приложение использует базу данных Oracle.
У меня есть бизнес-процессы CRUD, и у меня есть стандартные представления (создание, редактирование, показ, список).
Нет проблем с созданием, отображением и перечислением любой записи, содержащей специальные символы
как ä, ö, ü и т. д.
Но когда я редактирую любую запись, содержащую любой из этих символов, я получаю закодированный
версия. то есть
& auml; вместо ä
& ouml; вместо ö
& uuml; вместо ü
и т. Д.
Любой намек, как решить эту проблему?
Спасибо!
UPDATE
Спасибо за вашу помощь. Я опишу полный сценарий:
У меня есть веб-приложение, написанное в Grails (Groovy на Grails).
Для разработки я использую Jetty в качестве сервера и Oracle 10g.
Для тестирования и производства я использую Tomcat 6.0.18 и Oracle 10g
Java версия 1.6.0_02
У меня много CRUD-процессов (создание, получение, обновление, удаление).
Приложение мультиязычное. То есть, ä, ö, ü, ß, á, é, í, ó, ú
буквы (символы) должны быть разрешены в качестве содержимого.
Виды написаны в gsp. Я использую стандартные представления .gsp (создать, редактировать, показать, список).
Нет проблем с созданием, показом, списком. То есть, если в представлении создания я набираю
любое слово, использующее эти специальные символы, тогда это будет показано или перечислено
правильно под show.gsp или list.gsp
Проблема возникает при редактировании записи, содержащей такие символы. Вместо слова -let в поле появляется слово « ä » & auml; (это HTML-кодирование ä).
У меня есть следующие настройки:
под Config.groovy
grails.views.gsp.encoding = "UTF-8"
grails.converters.encoding = "UTF-8"
Каждая страница .gsp имеет следующий метатег:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" pageEncoding="UTF-8"/>
Каждая форма имеет следующий атрибут:
<g:form accept-charset="UTF-8" method="post" >
Под Tomcat я сделал следующие настройки.
Tomcat запускается со следующими параметрами:
CATALINA_OPTS=-Dfile.encoding=UTF-8
JAVA_OPTS="-Duser.language=de -Duser.country=DE"
Под web.xml я установил следующий фильтр
<filter>
<filter-name>SetCharacterEncoding</filter-name>
<filter-class>filters.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
В myApplication / WEB-INF / classes / filters я скопировал SetCharacterEncodingFilter.class из примеров / WEB-INF / classes / filters
Под server.xml я установил следующий соединитель:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8" useBodyEncodingForURI="UTF-8" />
Сценарий выглядит следующим образом: Сервер получает запрос на редактирование формы.
Сервер извлекает информацию из БД, а затем либо БД отправляет
информация уже закодирована HTML (я так не думаю) или сервер кодирует
это и отправка это закодировано клиенту.
Более того, на моем контроллере я вижу, что полученная с сервера информация не
HTML кодируется.
Я не знаю, какую настройку нужно выполнить, чтобы справиться с этой проблемой кодирования.
(что отнимает у меня много времени и усилий).
Заранее большое спасибо.
Луис