가변 너비 인코딩

가변 너비 인코딩(), 가변 길이 인코딩은 컴퓨터에서 표현을 위해 문자 집합을 인코딩하기 위해 사용되는 가변 길이 코드를 사용하는 문자 인코딩 스킴 유형이다. 대부분의 공통 가변 너비 인코딩은 멀티바이트 인코딩(multibyte encoding)이라고 하며 다양한 수의 바이트(옥텟)을 사용하여 각기 다른 문자들을 인코딩한다. 특히 마이크로소프트 문서에서 일부 개발자들은 멀티바이트 문자 집합(multibyte character set, MBCS)이라는 용어를 사용하지만 이는 부적절한 명칭인데 그 이유는 MBCS는 표현 크기가 문자 집합의 것이 아닌 인코딩의 속성이기 때문이다.

문자 당 1바이트 미만을 사용하는 초기 가변 길이 인코딩은 종종 초기 마이크로컴퓨터용 어드벤처 게임에서 영어 텍스트를 더 적은 바이트로 패킹(pack)하기 위해 사용되었다.

멀티바이트 인코딩은 일반적으로 기존 제약이 있는 하위 호환성을 유지하면서 인코딩이 가능한 문자 수 증가의 필요의 결과물이다. 예를 들어 문자 당 1바이트(8비트)를 가지고 256개의 잠재적인 문자를 인코딩할 수 있다. 256자를 초과하여 인코딩하기 위해 인코딩 단위 당 둘 이상의 바이트를 사용할 수 있으며 2바이트(16비트)는 65,536개의 잠재적 문자를 허용하지만 이러한 변화는 기존 시스템과의 호환성을 유지하지 못하며 그러므로 실현 가능하지 않을 수 있다.

CJK 멀티바이트 인코딩 
멀티바이트 인코딩을 처음 사용한 것은 중국어, 일본어, 한국어의 인코딩을 위해서였으며 이들은 256자를 초과하는 규모가 큰 문자 집합을 가지고 있다. 처음에 인코딩은 7비트로 제한되었다. ISO-2022-JP, ISO-2022-CN, ISO-2022-KR 인코딩은 리드 유닛(lead unit)과 트레일 유닛(trail unit)을 위해 21–7E(16진) 범위를 사용하였으며 싱글바이트와 멀티바이트 모드 간 전환을 위해 ISO 2022 이스케이프 시퀀스를 사용하였다. 총 8,836(94×94)자를 먼저 인코딩할 수 있었으며 전환을 통해 94×94자의 추가 집합을 인코딩할 수 있었다. CJK를 위한 ISO 2022 인코딩 스킴은 인터넷에서 여전히 사용되고 있다.

유닉스 플랫폼에서 ISO 2022 7비트 인코딩은 확장 유닉스 코드인 8비트 인코딩 스킴의 집합(EUC-JP, EUC-CN, EUC-KR)으로 대체되었다.

유니코드 가변 너비 인코딩 
유니코드 표준은 2개의 가변 너비 인코딩이 있다: UTF-8, UTF-16 (고정 너비 인코딩 UTF-32도 있음).

같이 보기 
 wchar_t 너비 문자
 트리플 바이트 문자 집합 (TBCS)
 더블 바이트 문자 집합 (DBCS)
 싱글 바이트 문자 집합 (SBCS)

문자 인코딩