답변:
ANSI 인코딩은 시스템의 표준 코드 페이지 (일반적으로 Windows)를 나타내는 데 사용되는 약간 일반적인 용어입니다. 서양 / 미국 시스템 에서는보다 적절하게 Windows-1252 라고 합니다. ( 다른 시스템에서 다른 특정 Windows 코드 페이지 를 나타낼 수 있습니다.) 이것은 기본적으로 ASCII 문자 세트 의 확장으로 128 문자 코드가 추가 된 모든 ASCII 문자를 포함합니다. 이 차이는 ASCII가 "ANSI"인코딩이 7 비트가 아니라 8 비트이기 때문에 발생합니다 (ASCII는 현재 MSB 가 0으로 설정된 상태에서 거의 항상 8 비트 바이트로 인코딩 됨 ). 이 인코딩이 일반적으로 ANSI라고하는 이유에 대한 설명은 기사를 참조하십시오.
"ANSI"라는 이름은 실제 ANSI 표준과 일치하지 않지만 이름이 붙어 있기 때문에 잘못된 이름입니다. ANSI는 UTF-8과 다릅니다.
windows-1254
.
기술적으로 ANSI는 US-ASCII와 동일해야합니다. 이는 ANSI 조직의 비준 버전의 ASCII 인 ANSI X3.4 표준을 나타냅니다 . 최상위 비트 문자 사용은 ASCII / ANSI에서 7 비트 문자 세트이므로 정의되지 않습니다.
그러나 DOS와 그 이후 Windows 커뮤니티에서이 용어를 오용 한 것은 "사용중인 시스템의 시스템 코드 페이지"라는 실질적 의미를 남겼습니다. 문자 당 다중 바이트 인코딩이 가능한 동아시아 시스템에서는 시스템 코드 페이지를 'mbcs'라고도합니다. 일부 코드 페이지는 최상위 바이트 클리어 바이트를 멀티 바이트 시퀀스의 후행 바이트로 사용할 수 있으므로 일반 ASCII와 엄격하게 호환되지는 않지만 여전히 "ANSI"라고합니다.
미국 및 서유럽 기본 설정에서“ANSI”는 Windows 코드 페이지 1252에 매핑됩니다. 이는 ISO-8859-1과 동일하지는 않습니다 (매우 유사합니다). 다른 기계에서는 전혀 다른 것이 될 수 있습니다. 이것은“ANSI”를 외부 인코딩 식별자로 전혀 쓸모 없게 만듭니다.
엄밀히 말하면 ANSI 인코딩과 같은 것은 없습니다. 구어체로 ANSI라는 용어는 여러 가지 다른 인코딩에 사용됩니다.
옛날 옛적에 Microsoft는 다른 모든 사람들과 마찬가지로 7 비트 문자 집합을 사용했으며 ASCII를 핵심 하위 집합으로 유지했지만 자신에게 적합한 문자를 만들었습니다. 그런 다음 세계가 8 비트 인코딩으로 전환했으며 ISO-8859 제품군과 같은 국제 표준이 있다는 것을 깨달았습니다. 그 당시 국제 표준을 원하고 미국에 거주하고 있다면 ANSI (American National Standards Institute)에서 자체 브랜드와 번호로 국제 표준을 다시 게시 한 미국 표준 협회에서 구입했습니다. 국제 표준이 아닌 미국 표준 준수). 따라서 Microsoft의 ISO-8859 사본은 표지에 "ANSI"라고 말했습니다. 당시 마이크로 소프트는 표준에 익숙하지 않았기 때문에 ANSI가 다른 많은 표준도 발표했다는 것을 인식하지 마십시오. 따라서 그들은 "ANSI"라는 표지 이름으로 ISO-8859 제품군의 표준 (그리고 당시 표준을 이해하지 못했기 때문에 발명 한 변형)을 참조하여 Microsoft로 향했습니다. 사용자 문서 및 사용자 커뮤니티에. 약 30 년 전 이었지만 오늘날에도 여전히 그 이름을들을 수 있습니다.
ASCII 는 128 개의 기호로 7 비트 코드 페이지를 정의합니다. ANSI는 이것을 8 비트로 확장하고 심볼 128-255에 대한 몇 가지 다른 코드 페이지가 있습니다.
이름 지정 ANSI는 실제로이 코드 페이지를 정의하는 ISO / IEC 8859 표준이므로 올바르지 않습니다. 참조 ISO / IEC 8859을 참조. 16 개의 코드 페이지 ISO / IEC 8859-1 ~ ISO / IEC 8859-16이 있습니다.
Windows-1252 는 다시 ISO / IEC 8859-1을 기반으로 하며 128 ~ 159 범위 의 C1 컨트롤 범위에서 일부 수정되었습니다. ISO와 8859 사이에 하이픈이 있습니다.
기본적으로 "ANSI"는 Windows의 레거시 코드 페이지를 나타냅니다. 이 주제에 대한 Raymond Chen의 기사를 참조하십시오 .
그 원인은 Windows 코드 페이지 1252가 원래 ISO 표준 8859-1이 된 ANSI 초안을 기반으로했기 때문입니다.
첫 번째 127 문자는 대부분의 코드 페이지에서 ASCII와 동일하지만 상위 문자는 다양합니다.
그러나 ANSI는 CP1252 또는 Latin 1을 자동으로 의미 하지 않습니다 .
그럼에도 불구하고 모든 혼란은 오늘날 그러한 문제를 피하고 유니 코드를 사용해야합니다.
PC가 "서양"PC가 아니고 어떤 코드 페이지가 사용되는지 모르는 경우이 페이지를 살펴보십시오. 자국어 지원 (NLS) API 참조
[Microsoft는이 참조를 제거했습니다. 웹 아카이브 자국어 지원 (NLS) API 참조 양식을 사용하십시오.
또는 레지스트리를 쿼리 할 수 있습니다.
C:\>reg query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage /f ACP
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage
ACP REG_SZ 1252
End of search: 1 match(es) found.
C:\>
"ANSI"텍스트가 스트리밍 텍스트의 흐름을 변경하기 위해 ANSI.SYS 드라이버를 통해 DOS에서 사용할 수있는 의사 VT-100 이스케이프 코드를 언급했을 때를 기억합니다 .... 아마도 당신이 말하는 것은 아니지만 http : //en.wikipedia.org/wiki/ANSI_escape_code
ANSI (일명 Windows-1252 / WinLatin1)는 라틴 알파벳의 문자 인코딩으로 ISO-8859-1 과 상당히 유사합니다 . Wikipedia에서 살펴볼 수 있습니다 .