2009-04-14 3 views
31

multibyte라는 용어는 문자가 1 바이트 (예 : UTF-8)보다 넓거나 같을 수있는 문자 집합을 나타내지 만 어떤 경우에는 1 바이트보다 넓은 문자 집합을 나타냅니다 예 : UTF-16)? 다른 말로하면 : 누군가 멀티 바이트 문자 세트에 대해 이야기한다면 무엇을 의미합니까?멀티 바이트 문자 집합이란 무엇입니까?

답변

29

용어는 모호하지만 내 국제화 작업, 우리는 일반적으로 용어는 "멀티 바이트 문자 집합"을 참조하기를 피할 유니 코드 기반 인코딩. 일반적으로이 용어는 각 문자를 정의하는 데 하나 이상의 바이트가있는 레거시 인코딩 체계에만 사용됩니다 (문자 당 1 바이트 만 필요한 인코딩 제외).

Shift-jis, jis, euc-jp, euc-kr 및 중국어 인코딩이 일반적으로 포함됩니다.

대부분의 레거시 인코딩은 일부 예외를 제외하고는 일종의 상태 시스템 모델 (또는 간단히 페이지 스와핑 모델)을 처리해야하며 텍스트 스트림에서 뒤로 이동하는 것은 복잡하고 오류가 발생하기 쉽습니다. UTF-8은 비트 마스크로 테스트 할 수 있고 UTF-16은 서로 게이트 쌍의 범위에 대해 테스트 할 수 있으므로 UTF-8 및 UTF-16은이 문제를 겪지 않으므로 비 병리학 문서에서 앞뒤로 이동할 수 있습니다. 중요한 복잡성없이 안전하게 수행 할 수 있습니다.

태국어 및 베트남어와 같은 언어의 경우 일부 레거시 인코딩은 멀티 바이트 문자 집합의 일부 복잡성을 갖지만 실제로는 문자 조합을 기반으로 만들어지며 일반적으로 광범위한 "멀티 바이트"로 묶이지 않습니다.

1

일반적으로 전자는 UTF-8과 유사합니다. 자세한 내용은 Variable-width encoding을 참조하십시오.

2

전자는 "가변 길이 인코딩"이라는 용어가 더 적합 할지라도 전자입니다.

1

일반적으로 문자 당 1 바이트 이상인 인 문자를 나타 내기 위해이 문자를 사용합니다.

5

1 바이트 = 1 문자 매핑이없는 모든 문자 집합. 모든 유니 코드 변형뿐만 아니라 아시아 문자 집합도 멀티 바이트입니다.

자세한 내용은 this Wikipedia article을 읽어 보시기 바랍니다.

4

멀티 바이트 문자는 인코딩에 1 바이트 이상이 필요한 문자를 의미합니다. 그렇다고해서 특정 인코딩을 사용하는 모든 문자의 너비가 동일해야합니다 (바이트 수). 예 : UTF-8 및 UTF-16 인코딩 된 문자는 여러 바이트를 사용하는 반면, 모두 UTF-32 인코딩 된 문자 항상은 32 비트를 사용합니다.

참고 :

16

누군가 멀티 바이트 문자 집합에 대해 이야기한다면 무엇을 의미합니까?

저도 평소와 마찬가지로 누가 말하고 있는지에 따라 다릅니다.

논리적으로 UTF-8, Shift-JIS, GB 등이 포함되어야합니다. 가변 길이 인코딩. UTF-16은 대개이 그룹에서 고려되지 않습니다 (비록 그 종류가 다르더라도 대용 물과 함께, 그리고 확실히 UTF-16LE/UTF-16BE를 통해 바이트로 인코딩 할 때 여러 바이트입니다).

그러나 Microsoftland에서이 용어는 일반적으로 가변 길이 기본 시스템 코드 페이지를 의미하는 데 사용됩니다 (유니 코드가 아닌 기존 응용 프로그램의 경우에는 여전히 많이 사용됩니다). 이 사용법에서는 Windows의 시스템 코드 페이지를 이러한 인코딩 중 하나로 설정할 수 없으므로 UTF-8 및 UTF-16LE/UTF-16BE를 포함 할 수 없습니다.

실제로 "mbcs"는 시스템 코드 페이지의 동의어 일 뿐이며, "ANSI"로도 알려져 있습니다 (오해의 소지가 있음). 이 경우 "멀티 바이트"문자 세트는 실제로 문자 당 1 바이트 만 사용하는 cp1252 서유럽 문자만큼 사소한 것일 수 있습니다!

내 충고 : "가변 길이"라는 말을 사용할 때는 "multibyte"라는 모호한 용어를 사용하지 마십시오. 다른 사람이 사용하면 설명을 요구해야하지만 일반적으로 Windows 배경을 가진 사람은 cp932 (Shift-JIS) 같은 레거시 동아시아 코드 페이지에 대해 말하고 UTF는 이야기하지 않습니다.

0

멀티 바이트 문자 집합은 1 바이트 및 2 바이트 문자 문자로 구성 될 수 있습니다. 따라서 멀티 바이트 문자 스트링에는 단일 바이트와 2 바이트 문자가 혼합되어있을 수 있습니다.

참조 : Single-Byte and Multibyte Character Sets