문제

ANSI 인코딩 형식이란 무엇입니까?시스템 기본 형식입니까?ASCII와 어떤 점에서 다른가요?

도움이 되었습니까?

해결책

ANSI 인코딩은 시스템 (일반적으로 Windows)의 표준 코드 페이지를 참조하는 데 사용되는 약간 일반적인 용어입니다. 더 적절하게 언급됩니다 Windows-1252 서부/미국 시스템. (특정 다른 것을 나타낼 수 있습니다 Windows 코드 페이지 다른 시스템에서.) 이것은 본질적으로입니다 ASCII 문자 세트의 확장 여기에는 추가 128 개의 문자 코드가있는 모든 ASCII 문자가 포함되어 있습니다. 이 차이는 "ANSI"인코딩이 ASCII와 같이 7 비트가 아닌 8 비트라는 사실 때문입니다 (ASCII는 오늘날 거의 항상 8 비트 바이트로 인코딩됩니다. MSB 0으로 설정). 이 인코딩이 일반적으로 ANSI라고하는 이유에 대한 설명은 기사를 참조하십시오.

"ANSI"라는 이름은 실제 ANSI 표준에 해당하지 않지만 이름이 붙어 있기 때문에 잘못된 이름입니다. ANSI는 UTF-8과 동일하지 않습니다.

다른 팁

기술적으로 ANSI는 US-ASCII와 동일해야합니다. 그것은 단순히 ANSI x3.4 표준을 나타냅니다. ANSI ASCII의 조직의 비준 된 버전. 최고 비트 세트 문자의 사용은 ASCII/ANSI에서 7 비트 문자 세트로 정의되지 않습니다.

그러나 DOS와 Windows Community 가이 용어의 오용을 수년간 오용하여“사용되는 기계의 시스템 코딩”과 같은 실질적인 의미를 남겼습니다. 시스템 코딩은 때때로 'MBCS'로 알려져 있습니다. 동아시아 시스템에서는 여러 차량의 특징 인코딩이 될 수 있기 때문입니다. 일부 코드 페이지는 멀티 바이트 시퀀스에서 최상위 클리어 바이트를 후행 바이트로 사용할 수 있으므로 일반 ASCII와 엄격하지는 않지만 여전히 "ANSI"라고합니다.

미국 및 서유럽 기본 설정에서 "ANSI"는 Windows 코드 1252에 맵핑됩니다. 이것은 ISO-8859-1과 다릅니다 (매우 유사하지만). 다른 기계에서는 전혀 다른 것이 될 수 있습니다. 이로 인해 외부 인코딩 식별자로서 "ANSI"는 전혀 쓸모가 없습니다.

엄밀히 말하면, ANSI 인코딩과 같은 것은 없습니다. 구어체 적으로 ANSI라는 용어는 여러 가지 인코딩에 사용됩니다.

  1. ISO 8859-1
  2. Windows CP1252
  3. Windows 시스템의 현재 시스템 인코딩 (Win32 API 용어).

옛날 옛적에 Microsoft는 다른 모든 사람들과 마찬가지로 7 비트 문자 세트를 사용했으며 ASCII를 핵심 서브 세트로 유지했지만 적합 할 때 자신의 발명을했습니다. 그런 다음 그들은 세계가 8 비트 인코딩으로 이동했으며 ISO-8859 가족과 같은 국제 표준이 있음을 깨달았습니다. 그 당시 국제 표준을 확보하고 미국에 살고 싶다면 미국 정부가 자신의 브랜딩과 숫자로 국제 표준을 다시 발사 한 ANSI (American National Standards Institute)에서 구입했습니다. 국제 표준이 아닌 미국 표준에 대한 적합성). 따라서 Microsoft의 ISO-8859 사본은 표지에 "ANSI"를 말했습니다. 그리고 그 당시 Microsoft는 표준에 익숙하지 않았기 때문에 ANSI가 다른 많은 표준을 발표했다는 사실을 알지 못했습니다. 그래서 그들은 "ANSI"라는 이름으로 ISO-8859 제품군 (그리고 그 당시 표준을 실제로 이해하지 못했기 때문에 발명 한 변형)의 표준을 언급했으며 Microsoft로 향했습니다. 사용자 문서 및 따라서 사용자 커뮤니티에. 그것은 약 30 년 전 이었지만 오늘날에도 여전히 이름을 듣습니다.

ASCII 128 기호의 7 비트 코드 페이지를 정의하면됩니다. ANSI는 이것을 8 비트로 확장하고 기호 128 ~ 255에 대한 여러 가지 코드 페이지가 있습니다.

이름 지정 ANSI는 실제로이 코드 페이지를 정의하는 ISO/IEC 8859 Norm이기 때문에 정확하지 않습니다. 보다 ISO/IEC 8859 참조. ISO/IEC 8859-16에서 16 개의 코드 페이지 ISO/IEC 8859-1이 있습니다.

Windows-1252 다시 ISO/IEC 8859-1을 기반으로합니다. C1 제어 세트 Wikipedia는 Windows-1252가 ISO와 8859 사이의 두 번째 하이픈을 가진 ISO-8859-1이라고도합니다. (믿을 수없는! 누가 그런 일을합니까?!?)

기본적으로 "ANSI"는 Windows의 레거시 코드 페지를 나타냅니다. 또한보십시오 Raymond Chen의 기사 이 주제에 대해. 첫 127자는 대부분의 코드 페이지에서 ASCII와 동일하지만 상위 문자는 다양합니다.

그러나 ANSI는합니다 ~ 아니다 자동으로 CP1252 또는 라틴어 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:\>

단일 바이트 문자를 사용할 때 ASCII 형식은 처음 127자를 정의합니다. 128-255의 확장 문자는 다양한 ANSI 코드 페이지로 정의되어 다른 언어에 대한 제한된 지원을 허용합니다. ANSI 인코딩 문자열을 이해하려면 사용하는 코드 페이지를 알아야합니다.

"ANSI"텍스트가 ansi.sys 드라이버를 통해 DOS에서 사용 가능한 의사 VT-100 코드를 참조하여 스트리밍 텍스트의 흐름을 변경할 때를 기억합니다 .... 아마도 당신이 말하는 것이 아니라 보는 경우 http://en.wikipedia.org/wiki/ansi_escape_code

ANSI (일명 Windows-1252/Winlatin1)는 라틴 알파벳의 인코딩으로 상당히 유사합니다. ISO-8859-1. 당신은 살펴보고 싶을 수도 있습니다 Wikipedia에서.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top