2016-07-08 6 views
0

Моя база данных работает на Postgresql 9.3, само приложение запускается на Apache Tomcat 8.5.3. Приложением является PopCommerce.Неверное обращение с акцентированными символами при использовании поиска (в PopCommerce Moqui)

База данных использует кодировку UTF8:

 

    Name | Owner | Encoding | Collate | Ctype | Access privileges 
-----------+----------+-----------+---------+-------+------------------------ 
moquidb | postgres | UTF8  | C  | C  | 

Я не изменил настройки по умолчанию (в отношении районов) на любой из серверов, ни сервер базы данных, ни Apache.

Текущее поведение приложения запутанно. Я импортировал список поставщиков моих клиентов (mantle.party.Party + mantle.party.Organization), все на словацком языке с акцентированными символами - á, š, č, ž и т. Д. Все кажется прекрасным, пока я не начну использовать поиск в FindSupplier (и в других местах).

Давайте предположим, что я хочу, чтобы найти поставщик, имеющие OrganizationName начиная с буквой «HUS». После того, как я пишу строку «HUS» в Название текст-найти (поле ввода) и нажмите Найти кнопку, новый экран делает с неправильным текстом в поле Имя- 'Hús. Письмо 'ú' было заменено на 'º'. Никакого результата поиска, конечно.

Каков правильный способ настройки базы данных и сервера приложений для поддержки акцентированных символов?

При разработке и работе Moqui на моем ноутбуке со встроенной базой данных ничего подобного не произошло. Я подозреваю, что настройка на серверах должна быть изменена. Любая помощь оценивается.

+0

Похоже, это вопрос о неправильной конфигурации PostgreSQL и/или сервер Apache Tomcat. Когда я запускаю приложение на том же хосте, но в автономном контейнере (с одинаковыми загруженными данными) проблема не возникает. – mrovnanik

ответ

1

Надеюсь, это поможет любому, кто сталкивается с подобными проблемами. В моем случае эти шаги помогли мне. Самое первое, что я смог определить, было то, что именно сервер Tomcat вызывал поведение. Когда я запускал Moqui в своем сервлете (автономный режим) по той же базе данных, проблема не возникала.

Так я изменил конфигурацию Tomcat, чтобы убедиться, связь (в частности ответы сервера) кодируются usign UTF-8:

  1. набор URIEncoding = «UTF-8» на разъем тега сервера. xml (conf/server.xml) -> просто добавить атрибут к существующей конфигурации,
  2. turn setCharacterEncodingFilter on - изменить web.xml (conf/web.xml), есть комментарий (в версии 8.5 Tomcat it находится вокруг строки 465) в web.xml. Проверьте конфигурацию, описанную в другом потоке в Stackoverflow (перейдите ко второй ссылке ниже для получения дополнительной информации).

Это были источники для меня:

https://wiki.apache.org/tomcat/FAQ/CharacterEncoding#Q3

Tomcat 7 org.apache.catalina.filters.AddDefaultCharsetFilter not using UTF-8

+0

Просьба [принять ваш ответ] (http: //meta.stackexchange.com/questions/5234/how-do-accepting-a-answer-work), если он решил вашу проблему. –

 Смежные вопросы

  • Нет связанных вопросов^_^