DBF 파일을 쿼리 할 때 OLEDB에서 사용할 문자 인코딩을 지정할 수 있습니까?DBF를 쿼리 할 때 OLEDB에서 사용할 문자 인코딩을 어떻게 지정합니까?
가능한 해결 방법은 DBF 파일의 문자 인코딩에 대한 OLEDB 호출 전에 쿼리 문자열을 인코딩 한 다음 반환 될 때 모든 결과를 인코딩하는 것입니다. 이 작업은 가능하지만 OLEDB 나 ADO.NET이 나를 위해이 작업을 수행 할 수 있다면 좋을 것입니다.
UPDATE 것은
빅토르 Jevdokimov에 의한 suggestion가 자동으로 작동하지 않습니다. 하지만 그것은 문자열의 수동 변환을 조사하게했습니다. CultureInfo의 TextInfo 속성을 사용하여 OemCodePage 및 WindowsCodePage를 찾고 해당 인코딩 인스턴스를 가져 와서 수동 변환을 수행 할 수 있습니다. 그러나 ADO.NET에서 이러한 변환을 사용하여 변환을 수행 할 수는 없습니다.
를 ADO.NET은 전송과 변환이 발생하는 위치 인코딩 변환 리더로 읽거나 라이터로 쓰기처럼, 다른 곳에 속해 있기 때문에 또는 다른 I/O. –
그렇다면 귀하의 답은 나에게 해결책을 어떻게 제공합니까? 나는 그것을 얻지 못한다 :) –
스레드가 귀하의 앱 레벨에있다. ADO.NET을 호출하기 전에 스레드 문화권을 변경합니다. 이것은 문자열을 ADO.NET과의 적절한 인코딩으로 변환합니다. 다른 입력/출력에 대한 원래 스레드 인코딩을 복원합니다. 내 방법을 시도 해 봤니? –