2013-02-28 3 views
0

엔티티에서 인코딩 문제가 발생했습니다. 좀 더 자세히 살펴보면, 사용자가 텍스트를 클릭하고 저장하고 데이터를 데이터베이스에 저장하는 인 플레이스 편집을 담당하는 복합 구성 요소가 있습니다. 문제는 사용자가 영어 이외의 일부 문자 (분음 문자)를 입력 할 때 인코딩이 깨지는 것입니다. 예를 들어, 사용자가 엔티티의 광택 문자 ą을 입력하면 나는 ºÄ과 같은 것을 얻습니다. 데이터는 인코딩이 UTF-8로 설정된 mysql 데이터베이스에 저장되며 데이터가 표시되는 페이지도 UTF-8로 인코딩됩니다. 클라이언트 (브라우저)에서 서버로 데이터를 보낸 후에 문제가 발생하는지 확인했지만 문제가 무엇인지 알지 못합니다.클라이언트 -> 서버 인코딩이 깨졌습니다.

답변

0

마침내 해결책을 찾았습니다. 필자는 web.xml에 문자 인코딩 필터를 추가해야했습니다.

<filter> 
    <filter-name>SetCharacterEncoding</filter-name> 
    <filter-class>org.apache.catalina.filters.SetCharacterEncodingFilter</filter-class> 
    <init-param> 
     <param-name>encoding</param-name> 
     <param-value>UTF-8</param-value> 
    </init-param> 
</filter> 
    <filter-mapping> 
    <filter-name>SetCharacterEncoding</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 
+0

webapp가 다른 서버가 아닌 Tomcat에 배포 된 경우에만 작동합니다. 따라서 웹 애플리케이션은 ** Tomcat (** 특정 Tomcat 버전 이상!)에 밀접하게 결합되어 ** 기본적으로 Tomcat 버전을 사용하는 다른 서버와 호환되지 않습니다. 오히려 자신 만의 필터 (하나의 비즈니스 코드 만 필요함)를 만들거나 OmniFaces와 같은 JSF 유틸리티 라이브러리를 사용하십시오. http://stackoverflow.com/questions/15139713/how-to-solve-encoding-problems-when-using- 이상한 문자의 제목에서 jsf-an/15144169 # 15144169 – BalusC

+0

고마워! 나는 그것을 시도 할 것이다. – pepuch

관련 문제