2010-01-12 2 views
4

우리는 VB6 응용 프로그램에 의해 생성 된 일부 텍스트를 읽는 Java로 작성된 응용 프로그램을 가지고 있습니다. 문제는 다음과 같습니다.이 VB6 응용 프로그램은 charset과 같은 특수 문자를 사용하여이 출력을 생성합니다.기본 VB6 charset은 무엇입니까?

그래서 질문 : VB6에서 사용되는 기본 문자 집합이 있습니까? 무엇 이니?

답변

2

어떻게 데이터를 서로 전송합니까? 파일을 통해? 예 다음은 컴퓨터의 기본 인코딩을 사용하는 경우 나는 그것을 얻을 수있는 자바 코드를 잘 모르겠지만, C#에서의 Encoding.Default ...

+0

정확히 그게 우리가하는 방법입니다. 파일을 통해. 실제로 우리가 발견 한 것은 명령 행 응용 프로그램이므로 MS-DOS 환경에서 실행되었으므로 UTF-8 또는 UTF-16이 아닌 기본 문자 집합 (windows-1252)이 사용되었습니다. –

+0

vb6 ms dos 응용 프로그램을 본 적이 없지만 ... "기본 인코딩"은 컴퓨터간에 다를 수 있습니다 .... – Peter

1

음, 여기

우리가 발견 한 것입니다 : 우리는 돈 ' 우리 VB6 응용 프로그램이 명령 줄에서 실행 되었기 때문에 그랬는지는 알지만 실제로는 MS-DOS 환경의 기본 charset을 사용하고 있습니다.이 경우는 Windows-1252였습니다.

InputStreamReader inputReader = new InputStreamReader(input, "windows-1252"); 

하고 그냥 괜찮 았는데 :

그래서 우리가해야 할 일을했을 모두 이런 식으로 우리의 자바 코드를 변경했다!

아마도 MS-DOS 환경 때문이 아니라 Microsoft Access 데이터베이스에서이 데이터를 얻고 있기 때문일 수 있습니다. 개인적으로, 나는 이것이 우리 문제에 대한 가장 가능성있는 해결책이라고 생각합니다.

+1

MS-DOS는이 그림에 어디에 들어 맞습니까? VB6 프로그램은 MS-DOS에서 실행할 수 없습니다. 이것은 완전히 다른 명령 행 프로그램이라는 것을 의미합니다. 프로그램에서 읽고있는 파일을 쓰는 경우 VB6 원시 I/O 문은 현재 ANSI 코드 페이지와 유니 코드 (UTF-16LE) 간의 변환을 사용하여 텍스트 파일을 읽거나 씁니다. 파일에는 8 비트 ANSI 문자가 있고 변환에 사용되는 코드 페이지는 현재 로캘 설정을 기반으로합니다. MS Access는 또 다른 문제이지만 MDB가 Jet 3.x 형식 (엔진 유형 = 4)보다 늦으면 대부분의 텍스트가 내부적으로 UTF-16LE 여야합니다. – Bob77

+0

+1 Bob. Michael Kaplan의 VB6 국제화에 대한 훌륭한 책은이 모든 것을 극도로 까다롭게 설명합니다. 무료 샘플 장에서는 VB6 I/O가 기본 코드 페이지 http://www.i18nwithvb.com/chapters/Chapter06_en.htm을 사용한다고 설명합니다. 작은 너클 - 16 비트가 될 수 있습니다. 중국어 – MarkJ