"문자"당 얼마나 많은 비트 또는 바이트가 있습니까?
"문자"당 얼마나 많은 비트 또는 바이트가 있습니까?
답변:
문자와 인코딩에 따라 다릅니다.
8 비트 ASCII 인코딩의 ASCII 문자는 8 비트 (1 바이트)이지만 7 비트에 맞을 수 있습니다.
ISO-8859-1 인코딩의 ISO-8895-1 문자는 8 비트 (1 바이트)입니다.
UTF-8 인코딩의 유니 코드 문자는 8 비트 (1 바이트)에서 32 비트 (4 바이트) 사이입니다.
UTF-16 인코딩의 유니 코드 문자는 16 (2 바이트)에서 32 비트 (4 바이트) 사이이지만 대부분의 일반 문자는 16 비트를 사용합니다. Windows에서 내부적으로 사용하는 인코딩입니다.
UTF-32 인코딩의 유니 코드 문자는 항상 32 비트 (4 바이트)입니다.
UTF-8의 ASCII 문자는 8 비트 (1 바이트)이고 UTF-16-16 비트입니다.
ISO-8895-1 (0xA0-0xFF)의 추가 (비 ASCII) 문자는 UTF-8 및 UTF-16에서 16 비트를 사용합니다.
이는 0.03125에서 0.125 사이의 문자가 비트에 있음을 의미합니다.
한 바이트에는 8 비트가 있습니다 (일반적으로 Windows에서 말함).
그러나 문자를 다루는 경우 문자 집합 / 인코딩에 따라 다릅니다. 유니 코드 문자는 2 바이트 또는 4 바이트가 될 수 있으므로 16 비트 또는 32 비트가 될 수 있지만 Windows-1252는 때때로 ANSI라고 잘못 불리우는 1 바이트이므로 8 비트입니다.
아시아 버전의 Windows 및 다른 일부에서는 전체 시스템이 2 바이트로 실행되므로 문자는 16 비트입니다.
편집 됨
Matteo의 의견에 따르면 모든 최신 버전의 Windows는 문자 당 내부적으로 16 비트를 사용합니다.
wchar_t
)로 실행됩니다. 따라서 모든 최신 응용 프로그램을 수행해야합니다. (리눅스 대신, 보통 UTF-8은 전체 시스템 전반에 걸쳐 사용되기 때문에 완전히 다른 이야기)
char
반면 유니 코드 문자열은 wchar_t
유형을 사용하여 저장됩니다 . 그건 그렇고, NT가 시작되었을 때 wchar_t
대리 쌍을 피하기에 충분했지만 이제 UTF-16 짝수 wchar_t
문자열이 가변 길이 문자를 가질 수 있으므로 Windows에서 유니 코드 문자는 2 ~ 4 바이트 (1 또는 2 wchar_t
).
:)