2009-07-07 4 views
0

C#을 통해 Nhibernate를 사용하여 한자를 Oracle DB에 저장하려고하는데 저장된 문자가 항상 쓰레기 문자로 끝납니다. 유형의를 AnsiString과 = "NVARCHAR"SQL 형으로 열 유형으로 선언 된 필드Hibernate를 사용하여 oracle에 중국어 문자 저장시 문제

  1. HBM 매핑 :

    나는 다음과 같은 일을했다. String과 nvarchar2도 시도했습니다. 도 있습니다.

  2. 데이터베이스 열 데이터 형식은 NVARCHAR2입니다.
  3. 레지스트리, 환경 변수 및 데이터베이스 문자 집합 NLS_LANG는 UTF8로 설정됩니다.

나는 SQL 개발자를 통해 중국어 문자 입력을 읽을 수있다. 그러나 문자를 화면에 올바르게 표시하고 변경하지 않고 데이터베이스에 다시 저장하려고하면 저장된 데이터가 " "이됩니다.

누구나 내가 여기에서 무엇을 놓칠 수 있는지 실마리가 있습니까?

답변

1

데이터 이 실제로이 .NET 측에 있는지 확인할 것입니다. 콘솔에 표시되는 것을 신뢰하지 마십시오. UTF-16 코드 포인트를보십시오.

일반적인 접근 방법은 내 debugging unicode article을 참조하십시오.

오라클의 데이터베이스 인코딩을 설정 한 다음 데이터베이스를 재구성하여 수정 한 적이있는 것 같습니다. 기존의 데이터베이스 인코딩에 적용 할 수 없었습니다. 그러나 세부 사항은 희미하고 먼 과거에 있습니다 ...

관련 문제