ISO-2022にはGL/GRという左脳と右脳のような分け方とG0-G3というバッファの概念があって少しややこしいですが、7bitのISO-2022-JPに限っていえばGLしか使わないのでそれほど面倒ではありません。  ただ、これならEUCの方がシンプルでいいような感じもしますが。    また、UnicodeのUTF-16のサロゲートの部分の実装が気になったので、unicode.orgにあるCの変換プログラムを見てみました。はじめは何で10bitのシフトなんてしているのかと思いましたが、シンプルな式で変換できることがわかりました。    で、ついでにUTF-8の方も見てみましたが、UTF-8はUnicode 3.1になって長さや範囲の縛りをきつくしたようで、こちらは面倒そうです。まだちゃんと読んだわけではないのですが、ConvertUTF.cの中の第1バイトを見て続くバイトの長さをチェックするためのテーブル(trailingBytesForUTF8[256])の最後の方(0xF0〜0xFFにあたる部分)が    3,3,3,3,3,3,3,3,4,4,4,4,5,5,5,5    となっています。なぜ4とか5とかあるのかもわかりませんが、今の規格だと第1バイトは0xF4までのように思えるので、    3,3,3,3,3,_,_,_,4,4,4,4,5,5,5,5    の_の部分は3でない方がいいような気もしますが・・・    それにしてもwww.unicode.orgのサイトは、どこに情報があるのか捜しづらくて困ります。    【今日の日経平均】 9,919 -106
|
|