2009-12-23 4 views
0

아래 작업과 같은 코드 페이지를 변경하려면 어떻게합니까? 데이터베이스 읽기 작업에 올바른 코드 페이지 설정

string foo = (string)sqlCommand.ExecuteScalar(); 

나는 내가 String.Format(IFormatProvider, String) 내부 메서드 호출을 래핑 할 수 있습니다 알고있는 것처럼. 그것은 웅장 할 것입니다.

하지만 특정 코드 페이지로 IFormatProvider를 구성하면 데이터베이스 파일의 나머지 코드 페이지에 저장된 데이터베이스에서이 특정 데이터를 올바르게 읽을 수 있습니다.

자세한 정보 :
- 데이터베이스는 SQLite 데이터베이스입니다.
- 데이터가 포르투갈어로 제공됩니다.
- 데이터베이스에 추가중인 데이터가 내 응용 프로그램에 잘못 표시됩니다.
- 응용 프로그램을 통해 추가 한 데이터가 올바르게 표시됩니다.

내 응용 프로그램을 통해 UTF-8 형식으로 데이터를 추가한다고 생각하는 것으로 생각합니다. 저는 System.Data.SQLite 공급자를 사용하고 있으며이 동작을 어떻게 변경할 수 있는지 더 자세히 조사 할 것입니다. 어쨌든, 이제 UTF-8 형식이 아닌 외부 소스에서 데이터베이스에 삽입되는 데이터를 읽으 려합니다.

+1

데이터가 어떻게 보이는지 조금 더 구체적으로 표현할 수 있습니까? 예를 들어 어떻게 보이고 싶습니까? –

+0

+1 오라이 감사합니다. 추가 정보가 추가되었습니다. –

+1

외부 코드 (즉, 외부에 데이터베이스에 데이터를 추가하는 코드)가 문제가 아닌 것이 확실합니까? 나는 .NET의 언어가 무엇이든간에 문자열이 SQLite에 의해 올바르게 저장되고 검색 될 것이라고 확신하므로 불량 데이터가 .NET을 전혀 통과하지 못한다고 생각합니다. 이 경우 프로그램이 아닌 외부 소스에 수정 사항을 적용해야합니다. –

답변

1

아니요, String.Format (기타)은 클라이언트 측 처리와 관련됩니다. 데이터베이스가 텍스트 데이터를 처리하는 방법을 정말로 변경해야한다면 SQL 문 또는 연결 문자열의 일부가 될 것으로 기대합니다. 이러한 특정 쿼리에 대해 다른 연결을 사용해야 할 수도 있습니다.

.NET 내에서 모든 텍스트 데이터는 유니 코드로만 표시됩니다. 솔직히 말해서, 나는 희망 그 데이터베이스가 무슨 일이 있었는지 알고 차이점 자체를 처리 하겠지만 ... 당신은 어떤 데이터베이스를 사용하는지 또는 어떻게 한 테이블이 다른 인코딩을 사용하는지에 대한 세부 정보를 제공하지 않았습니다. 다른 사람에게.

+0

더 많은 정보를 제공했습니다. 그러나 귀하의 게시물은 이미 유용합니다. 고맙습니다. 존. +1 –

+0

Jon, 귀하의 의견은 내가 제공 한 정보를 바탕으로 귀하가 할 수있는 최선의 결과였습니다. 나는 이해 :) 그러나 당신은 실제로 문제가 무엇인지 찾아내는 데 충분한 정보를 (나는이 모든 인코딩 물건에 익숙하지 않다) 준 것이다. 삽입 된 잘못된 데이터는 사실 응용 프로그램 외부의 데이터입니다. UTF-8 일 때 ANSI 형식으로 삽입되었습니다. 많은 감사합니다! –