2013-04-11 1 views
0

오라클 연결을 사용하여 매우 간단한 웹 응용 프로그램과 함께 Tomcat 6.0 응용 프로그램 서버가 있습니다. 연결 자체는 server.xml 파일에서 JDBCRealm으로 정의됩니다.Oracle 드라이버 오작동 Tomcat 6.0

서버의 기본 인코딩은 latin1입니다. 데이터베이스 인코딩은 UTF-8입니다. 일반적으로 모든 것이 잘 작동하고, should와 the가 적절한 인코딩으로 검색되면서 특수 문자가 databse에 삽입됩니다. 오라클 드라이버가 인코딩 불일치를 자동으로 해결하기 때문입니다. ,

-Dfile.encoding=UTF-8 

지금 난 여전히 ŰÁÉÚŐÖÜÓ 같은 특수 문자를 저장할 수 있습니다

나는 카탈리나을 위해 사용되는 인코딩을 설정하려면 AS가 시작 catalina.bat 파일에 다음 비트를 추가 그리고 그들은 데이터베이스에 이런 식으로 삽입됩니다,하지만 만약 내가 어떤 페이지에서 데이터를 다시로드하면 인코딩이 엉망입니다. 다음과 같음 : ĂĂĂĂĂĂĂĂ.

그래도 삽입 할 수는 있지만 해당 행을 추가하면 올바른 형식의 데이터를 가져올 수 없습니다. 누구든지이 문제를 해결하는 방법을 알고 있습니까? 또는 어쩌면 그것을 일으키는 원인이 될 수 있 었는가? 실제로 다른 환경에서 오류를 다시 만들려고하기 때문에이 설치가 필요합니다.

+0

브라우저에서 문자가 제대로 표시되지 않는 문제가 있습니까? catalina.bat에서'-Dfile.encoding = UTF-8'을 정확히 어디에 지정합니까? – Magnilex

+0

시동 직전. % _EXECJAVA % % JAVA_OPTS % % CATALINA_OPTS % % DEBUG_OPTS % -Dfile.encoding = UTF-8 -Djava.endorsed.dirs = "% JAVA_ENDORSED_DIRS %"등 ... –

+0

비슷한 문제가 있습니다. JAVA_OPTS'에 사용하는 매개 변수를 추가하십시오. 'JAVA_OPTS = % JAVA_OPTS % -Dfile.encoding = UTF8' – Magnilex

답변

0

글쎄, 나는 문제가 무엇인지 알아 냈다. 나는 전환을 제대로하지 않았기 때문에 오라클 운전사를 비난했다. 그러나 서블릿은 값을 잘못된 형식으로 전송하여 시작했으며 더 나쁜 방식으로 표시했습니다. 그래서 실제 간단한 솔루션은 일반적으로 사용되는 인코딩 맞추기를 참조하는 일반 필터로 was xml을 확장하는 것이 었습니다.이 필터는 tomcat 폴더의 eaxmple 웹 응용 프로그램에도 있습니다. web.xml에 다음을 추가했습니다.

<filter> 
    <filter-name>Set Character Encoding</filter-name> 
    <filter-class>filters.SetCharacterEncodingFilter</filter-class> 
    <init-param> 
     <param-name>encoding</param-name> 
     <param-value>UTF-8</param-value> 
    </init-param> 
</filter> 
<filter-mapping> 
    <filter-name>Set Character Encoding</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 

모두 잘되었습니다. 이것은 지금부터 web.xml에 추가 할 첫 번째 것이 될 것입니다. 어쨌든, 고마워, 건배!