- 220 名前:デフォルトの名無しさん mailto:sage [2011/02/26(土) 01:40:59.65 ]
- >>219
文字の符号数が固定でなくても、符号が固定長なのは処理の楽さに影響するよ。 UTF-8を処理する場合は、複数のバイト列から符号位置(序数)をデコードしたあと、 複数の序数を組み合わせて1つの文字を作る。 UTF-16やUTF-32を処理する場合は、16bit/32bitで直接符号位置(序数)が入っているから、 複数の序数を組み合わせて1つの文字を作るだけ。 UTF-8に対してUTF-16は、ASCII文字が大半を占めるときにメモリ効率が下がるという デメリットと、処理が軽くなるというメリットがある。 ただし、CJKでは下がらないもしくは効率がよくなるケースもある。 これが UTF-16 に対する UTF-32 になると、ほとんどすべてのケースでメモリ効率が 2倍近く悪くなる上に、サロゲートペアの処理は無くなるものの、それ以外の結合文字の 問題はなくならないから処理はほとんど軽くならない。 20世紀に規格が決まったJavaだけでなく、2002年の.NET、2005年のQt4もUTF-16を 選んでいるのは、それなりにメリットがあるから。
|

|