2012-04-13 1 views
18

可能性の重複:
なぜUTF-24がないのですか?

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

最大UnicodeコードポイントはUTF-32から0x10FFFFあります。 UTF-32は21の情報ビットと11の余分なブランクビットを有する。それで、4よりも3バイトで各コードポイントを格納するためのUTF-24エンコーディング(つまり、上位バイトを取り除いたUTF-32)がないのはなぜですか?

+0

単純な理由です。 16,32,8,2があるので、24が奇数になります。プラスのメモリブロックは通常2^xのブロックでディセットされています。その理由は、24MBのメモリが搭載されていないのと同じ理由で、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. " 

としてはダビデによって指摘しましたStarner in http://www.mail-archive.com/[email protected]/msg16011.html

なぜですか? が旧イタリック体またはゴシック体で文書を話している場合を除き、UTF-24はほぼ常にUTF-16より大きくなります。数学的な英数字 の文字は、ほとんどの場合、十分な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

2番目の見積もりは、私の提案に応えて、実際には2003年から数年前でした。 –

+0

個人的に、私はそれらが拡大するのを見たいと思います。私はまだスペースが残っていることを知っていますが、彼らはまだいずれかの言語、特に歴史的な言語を行っていません。 – Rahly

関連する問題