Firebird - UNICODE_FSS
Firebirdが対応している文字コードの一つ,UNICODE_FSS.文字コード長が1-3バイトとあり,Unicodeのどの符号化形式なのかちょっとわかりませんでした.ネットで検索してみるとUTF-8のようで,UTF-8って1-4バイトじゃなかったかな?などと思いましたが,基本多言語面(BMP)のみ対応の制限されたUTF-8なら,確かに1-3バイトです.Unicodeを本格的に扱うようになったのは最近のためか,UTF-8は1-4バイト*1だと思いこんでいました.UCS-2対応であって,UTF-16対応じゃないのですね…….
入力がUTF-16の場合はサロゲートペアを3バイトのUTF-8コード値2つに変換するように指定するか,指定できる関数が無ければ自前で変換用関数を書く,入力がUTF-8の場合は4バイトUTF-8コード値を見つけたら3バイトUTF-8コード値2つに変換してやるといった処理が必要かも知れません.
UTF-8はShift JISと違って,長いバイト長のコード値に短いバイト長のコード値が含まれるなんて事が無いように設計されていますから*2,あまり大きなトラブルは無いかも知れませんが,実際にやってみないとわかりません.
現状,サロゲートペアで表される文字を頻繁に使うことは少ないと思いますが,インストールしてすぐにサロゲートペアの文字を利用できるMacOS Xなどだと特にサロゲートペア文字列を考えたコーディングをしておく必要があるかも知れません.
(追記、2005/08/09)
UTF-8はかつて、UTF-2およびFSS-UTF(File System Safe UTF)として知られていた。
Ken Lunde(著), 小松章(訳), 逆井克己(訳), 「CJKV日中韓越情報処理」, O'REILLY, p191, 2002.
FSSというのは、File System Safeって意味だったのですね。
- 作者: ケンランディ,Ken Lunde,小松章,逆井克己
- 出版社/メーカー: オライリージャパン
- 発売日: 2002/12
- メディア: 単行本
- 購入: 1人 クリック: 57回
- この商品を含むブログ (30件) を見る