기술나눔

C#에서 US7ASCII 문자 집합을 읽을 때 Oracle 데이터베이스에서 중국어 문자가 왜곡되는 문제를 해결합니다.

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

👨 作者简介:大家好,我是Taro,全栈领域创作者
✒️ 개인 홈페이지:돈 후안 타로
🚀 支持我:点赞👍+📝 评论 + ⭐️收藏



머리말

최근에 병원의 HIS 시스템과 상대방의 데이터베이스에 연결해야 했는데, 알고 보니 병원에서는 Oracle을 사용하고 있었습니다.아메리칸_아메리카.US7ASCII인코딩 형식이 인코딩되어 프로그램으로 읽혀지는 중국어 데이터가 왜곡됩니다.

여기에 이미지 설명을 삽입하세요.


以下是本篇文章正文内容,下面案例可供参考

1. 솔루션

병원 단위의 데이터 인코딩은 변경할 수 없기 때문에 많은 방법을 테스트한 결과 독립적인 Oracle 드라이버를 사용하여 처리하는 보다 효율적인 처리 방법(ODAC + OleDbConnection)을 최종 선택했습니다.

2. System.Data.OleDb 연결 라이브러리 설치

  1. Oracle.ManagedDataAccess.클라이언트 Oracle 데이터베이스에 연결하기 위해 C#에서 가장 일반적으로 사용되는 패키지이기도 하며 Oracle에서 공식적으로 제공하는 .NET 데이터 액세스 라이브러리이지만 문자 깨짐 문제를 해결할 수는 없습니다.

  2. 채택되어야 한다시스템.데이터.OleDb , 독립적인 오라클 드라이버를 사용하여 처리하는데, 이는 중국어 왜곡 문자를 해결하는 열쇠입니다.
    여기에 이미지 설명을 삽입하세요.

시스템.데이터.OleDb 종속성:
여기에 이미지 설명을 삽입하세요.

핵심 코드:

  1. 연결 데이터베이스 문자열:
<add connectionString="Provider=OraOLEDB.Oracle;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=ORCL)));User ID=db;Password=db;" name="HIS" />
  • 1

프로그램 호출:
여기에 이미지 설명을 삽입하세요.

3. ODAC 구성 요소 드라이버를 로컬로 설치합니다.

ODAC 다운로드 :https://www.oracle.com/database/technologies/dotnet-utilsoft-downloads.html

ODAC를 설치한 후 컴퓨터를 다시 시작해야 합니다.
여기에 이미지 설명을 삽입하세요.
여기에 이미지 설명을 삽입하세요.
설치가 완료될 때까지 "다음"을 계속 클릭하세요
여기에 이미지 설명을 삽입하세요.

이미지 설명을 추가해주세요

4. 시스템 환경 변수 편집

이 단계는 로컬에서 볼 때 데이터가 왜곡되는 것을 방지하기 위해 로컬 및 클라이언트 데이터베이스 문자 집합을 일관되게 유지하는 것입니다.

变量名:NLS_LANG |  变量值:AMERICAN_AMERICA.US7ASCII
  • 1

코드는 다음과 같습니다(예제).
여기에 이미지 설명을 삽입하세요.

5. 디버깅 프로그램

  • 중국어 데이터 부분이 정상적으로 표시되며 더 이상 잘못된 문자가 표시되지 않습니다.
    여기에 이미지 설명을 삽입하세요.

요약하다

이상이 오늘 말씀드릴 내용입니다. 초기 오라클에는 한자세트(oracle6, oracle7, oracle7.1 등)가 없었으나, 그 이후부터 일부 사용자들이 데이터베이스를 사용하여 US7ASCII에 저장해 두었습니다. 문자 집합. 이 기사에서는 US7ASCII 문자 집합 오라클 데이터베이스의 중국어 왜곡 문제를 완벽하게 해결하는 System.Data.OleDb 라이브러리의 사용을 간략하게 소개합니다.