2012-04-13 2 views
18

가능한 중복 :
Why UTF-32 exists whereas only 21 bits are necessary to encode every character?UTF-24가없는 이유는 무엇입니까?

최대 유니 코드 코드 포인트는 UTF-32에서 0x10FFFF입니다. UTF-32는 21 개의 정보 비트와 11 개의 불필요한 공백 비트를 가지고 있습니다. 그렇다면 4가 아닌 3 바이트로 각 코드 포인트를 저장하기위한 UTF-24 인코딩 (즉, 상위 바이트가 제거 된 UTF-32)이없는 이유는 무엇입니까?

+0

간단한 이유입니다. 16, 32, 8, 2가 있으므로 24가 이상합니다. 메모리의 플러스 블록은 일반적으로 2^x ....의 블록으로 표시됩니다. 그 이유는 computere가 24MB 나 HDD가없는 것과 같은 이유로 16GB와 32GB 대신 24GB로 광고를하지 않기 때문입니다. –

답변

19

음, 사실은 다음과 같습니다 UTF-24은 2007 년에 제안되었다

http://unicode.org/mail-arch/unicode-ml/y2007-m01/0057.html

언급 된 전문가에게 & 단점 인 :

"UTF-24 
Advantages: 
1. Fixed length code units. 
2. Encoding format is easily detectable for any content, even if mislabeled. 
3. Byte order can be reliably detected without the use of BOM, even for single-code-unit data. 
4. If octets are dropped/inserted, decoder can resync at next valid code unit. 
5. Practical for both internal processing and storage/interchange. 
6. Conversion to code point scalar values is more trivial then for UTF-16 surrogate pairs 
    and UTF-7/8 multibyte sequences. 
7. 7-bit transparent version can be easily derived. 
8. Most compact for texts in archaic scripts. 
Disadvantages: 
1. Takes more space then UTF-8/16, except for texts in archaic scripts. 
2. Comparing to UTF-32, extra bitwise operations required to convert to code point scalar values. 
3. Incompatible with many legacy text-processing tools and protocols. " 

으로는 다윗 지적 스타 너의 http://www.mail-archive.com/[email protected]/msg16011.html :

왜? 이 Old Italic 또는 Gothic으로 된 문서가 아니라면 UTF-24는 거의 항상 UTF-16보다 커집니다. 수학 alphanumberic 문자는 거의 항상 충분한 ASCII와 결합되어 UTF-8이 승리하고, 그렇지 않은 경우 UTF-16이 성공할만큼 충분한 BMP 문자를 만듭니다. 최신 컴퓨터는 24 비트 청크를 제대로 처리하지 못합니다. 그들은 당신이 포장했다고 선언하지 않는 한 을 32 비트를 차지하고, 은 UTF-16 또는 UTF-32보다 훨씬 느릴 것입니다. 디스크에 저장하는 경우 BOCU 또는 SCSU (이미 비표준 임)를 사용하거나 UTF-8, UTF-16, BOCU 또는 SCSU의 표준 압축을 사용할 수 있습니다. SCSU 또는 BOCU가 압축 된 경우 UTF-24의 절반 공간 인 을 차지합니다.

또한 다음 StackOverflow의 게시물을 확인할 수 있습니다 : 24 구조 없기 때문에

Why UTF-32 exists whereas only 21 bits are necessary to encode every character?

+2

두 번째 인용문은 내 제안에 대한 답변으로 2003 년부터 실제로 몇 년 전이었습니다. –

+0

개인적으로, 나는 그들이 확장하는 것을보고 싶다. 아직도 많은 공간이 남아 있지만, 모든 언어, 특히 역사적인 언어를 아직 마쳤습니다. – Rahly

관련 문제