2009-08-03 6 views
5

내 테스트 환경에서 상표 "™"을 데이터베이스에 유지하지 않는 순간에 문제가 발생합니다. 양식 데이터를 입력 한 다음 제출하면 서버 측에서 요청이 올바르게 인코딩 된 ™ 문자를 갖지만 최대 절전 모드의 "saveOrUpdate()"메서드 호출이 호출되면 해당 데이터가 표가 거꾸로 된 물음표로 표시됩니다.Hibernate Oracle 및 문자 인코딩

인스턴트 메시징 (SqlDeveloper)을 사용하여 테이블을 검사하고 행에 직접 붙여 넣은 후 문자를 ™ ™로 수동 변경하여 작동시킬 수 있습니다.

그래서 최대 절전 모드의 지속성 방법이 올바르게 작동하지 않는다고 가정했습니다. 임 여기에 손해를보고, 정말, 난 그냥 무엇을하려고 잘 모릅니다

는, 내가 설정 : 설정 파일에서

<property name="connection.useUnicode">true</property> 
<property name="connection.characterEncoding">utf-8</property> 

속성을 행운으로.

테이블의 내 열은 원래 NVARCHAR2 (400 CHAR)입니다 (처음에는 VARCHAR2 였지만이 문제를 디버깅하는 동안 변경되었습니다).

여기에 도움을 주시면 감사하겠습니다.

마크

답변

6

좋아, 그래서 내가 무엇을 할 필요하면 사실defaultNChar 연결 속성을 설정하는 것이라고 밝혀졌습니다.

Tomcat에서 내 응용 프로그램의 컨텍스트 파일을 통해이 작업을 수행했습니다.

나를 밝혀주는 기사는 here입니다.

+0

MArk 님, NCHAR을 사용하고 있지 않지만 노르딕 문자 문제가 있습니다. 그것들은 ISO-8859-1의 일부입니다. 데이터베이스에 쓰는 동안 마술을하는 것처럼 보입니다. –

+0

링크가 죽었습니다 ... :( – xenoterracide