도움이 되었습니까?

해결책

ANSI는 현재 Windows ANSI 코드 페이지이며 인코딩과 동일합니다.

OEM은 일반적으로 콘솔 애플리케이션에서 사용하는 현재 OEM 코드 페이지입니다.

다음을 사용하여 얻을 수 있습니다.

Encoding.GetEncoding(CultureInfo.CurrentCulture.TextInfo.OEMCodePage)

콘솔 애플리케이션에서 OEM 인코딩도 사용할 수 있습니다.

Console.OutputEncoding

다른 팁

이것은 정말로, 정말로 고대입니다. ODBC는 석기 시대부터 MS-DOS에서 Windows가 시작될 때부터 시작됩니다. 당시에는 많은 텍스트가 여전히 Microsoft가 "OEM 문자 세트"라는 원래 IBM-PC 문자 세트로 인코딩되었습니다. 표준 IBM-PC 세트에는 악센트가있는 캐릭터와 의사 그래픽 글리프가 상단 절반의 코드 0x80-0xff가있었습니다.

영어 이외의 언어에서 텍스트 출력에 너무 제한된 Microsoft는 특정 언어 그룹에 적합한 문자 글리프 범위를 사용하기 시작했습니다. American English 캐릭터 세트는 ANSI에 의해 표준화되었으며,이 레이블은 이제 모든 비 OEM 코드 페이지에 첨부되었습니다.

아무도 OEM 캐릭터 세트에서 텍스트를 인코딩하지 않으며, 적어도 10 년 전에 도도의 길을 갔다. 여기의 올바른 설정은 ANSI입니다. 텍스트를 인코딩하는 데 사용 된 코드 페이지가 시스템의 기본 코드 페이지와 일치하도록 손가락을 뒤로 교차시킵니다. 그것도 도도이기도합니다. 유니 코드는 그것을 해결했습니다.

귀하의 질문에 대한 짧은 대답은 직접적인 관계가 없습니다.

더 긴 버전 :
CharacterSet "schema.ini"파일의 경우도 가능합니다 ANSI 또는 OEM.
ANSI와 ASCII는 다른 것을 말합니다.

여기에서 더 많이 읽을 수 있습니다.
ASCII 및 ANSI 문자 이해
ALEX HOFFMAN의 ASCII 대 ANSI 인코딩

내 이해에서, characterSet = ansi는 다음과 같습니다. encoding.default. OEM은 asciiencoding 일 수 있습니다.

그러나 ANSI는 시스템 ANSI 코드 페이지를 사용하므로 코드 페이지가 다른 컴퓨터에서 동일한 파일에 액세스하는 경우 비 호환성이 발생할 수 있습니다.

나는 둘 사이를 전환하기 위해 내 자신의 참조를 컴파일했다.

Windows code page       Name            System.Text.Encoding    schema.ini CharacterSet
20127                   ASCII (US)      ASCII                   20127
1252                    ANSI Latin I    Default                 ANSI
65001                   UTF-8           UTF8                    65001
1200                    UTF-16 LE       Unicode                 Unicode
1201                    UTF-16 BE       BigEndianUnicode        1201
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top