2016-07-08 7 views
0

데이터베이스가 PostgreSQL 9.3에서 실행 중이므로 응용 프로그램 자체가 Apache Tomcat 8.5.3에서 실행됩니다. 관련된 응용 프로그램은 PopCommerce입니다. 서버 중 하나에Search (Moqui의 PopCommerce에서)를 사용할 때 악센트 부호가있는 문자가 올바르지 않습니다.

 

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

(로케일 관련) 내가 변경되지 않은 기본 설정도 데이터베이스 서버 나 아파치 :

데이터베이스가 UTF8 인코딩을 사용합니다.

현재 응용 프로그램의 동작이 혼란 스럽습니다. 고객의 공급자 목록 (mantle.party.Party + mantle.party.Organization)을 모두 슬로바키아어로 악센트 부호가있는 문자 (á, š, č, ž 등)로 가져 왔습니다. 검색을 시작할 때까지 모든 것이 잘된 것처럼 보입니다. 공급 업체 검색 화면 (및 다른 곳에서도).

의 내가 편지 '후스'로 시작하는 조직 이름을 가진 공급자를 찾으려면 가정하자. 'Hús'- 나는 이름 텍스트 찾기 (입력 상자)에 문자열 'HUS'를 작성하고 찾기 버튼을 누르 후 새로운 화면이 이름 상자에 잘못된 텍스트로 렌더링합니다. 'ú'은 'º'으로 바뀌 었습니다. 물론 검색 결과가 없습니다.

악센트 부호가있는 문자를 지원하도록 데이터베이스 및 응용 프로그램 서버를 설정하는 올바른 방법은 무엇입니까?

내장 데이터베이스가있는 노트북에서 Moqui를 개발하고 실행할 때 이런 일이 발생하지 않았습니다. 서버의 설정을 변경해야한다고 생각합니다. 어떤 도움을 주셔서 감사합니다.

+0

것 같다. 응용 프로그램을 동일한 호스트에서 실행하지만 독립형 컨테이너 (동일한 데이터가로드 된 상태)에서 실행하면 문제가 발생하지 않습니다. – mrovnanik

답변

1

이렇게하면 비슷한 문제에 직면 해있는 사람에게 도움이되기를 바랍니다. 제 경우에는이 단계들이 나를 도왔습니다. 내가 결정할 수 있었던 첫 번째 사실은 행동을 유발하는 Tomcat 서버라는 사실이었습니다. 동일한 데이터베이스에 대해 서블릿 (독립형 모드)에서 Moqui를 실행했을 때 문제가 발생하지 않았습니다.

그래서 내가 확인하기 위해 Tomcat의 구성을 수정, 통신 (특히 서버의 응답) 인코딩 usign UTF-8 :

  1. 설정 URIEncoding 서버에 커넥터 태그에 = "UTF-8".
  2. setCharacterEncodingFilter on - web.xml (conf/web.xml) 편집, 주석이 달린 태그가 있음 (Tomcat it의 버전 8.5에서 xml (conf/server.xml) web.xml의 465 행 주위에 있습니다. Stackoverflow의 다른 스레드에서 설명한 구성을 확인하십시오 (자세한 내용은 아래 두 번째 링크로 이동하십시오).

이 나를 위해 원했다 : 이것은 PostgreSQL의 및/또는 Apache Tomcat 서버의 잘못된 구성의 문제처럼

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

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

+0

[답변을 수락하십시오] (http : //meta.stackexchange.co.kr/questions/5234/how-does-accepting-an-answer-work)을 참조하십시오. –