t.suw****@mac*****
t.suw****@mac*****
2006年 11月 27日 (月) 23:46:54 JST
諏訪です。
AquaSKK BETA utf8 1.0 をリリースしました(brand-new-engine 枝)。
▽追加・改善された機能
・ユーザー辞書を UTF-8 化(skk-jisyo.utf8)
・SKK-JISYO.JIS3_4 に対応
▽不具合修正
・特になし
■ Dictionary/UserDictionary のインタフェースについて
依存関係を減らすために、CppCFString を std::string にしました。また、
findOkuri* は std::vector を返していましたが、これも std::string にしま
した。std::string の中身は全て UTF-8 文字列です。
===================== ここから ====================
class Dictionary {
public:
virtual ~Dictionary() {};
// 初期化
virtual void load(const std::string& location) = 0;
// 辞書の情報
virtual int countOkuriAri() = 0;
virtual int countOkuriNasi() = 0;
// 検索
virtual std::string findOkuriAri(const std::string& query) = 0;
virtual std::string findOkuriNasi(const std::string& query) = 0;
};
===================== ここまで ====================
具象辞書クラスは、引数を UTF-8 から適宜都合の良いコード(EUC や SJIS な
ど)に変換して辞書を検索し、結果を UTF-8 にして戻します。
例えば『かんじ /漢字/感じ/寛治/』というエントリを検索した場合には、
UTF-8 な "/漢字/感じ/寛治/" を返すことになります。
変換候補の分解やマージなどの処理は、DictionarySet の仕事です。
■ 文字コード変換用ファンクタについて
今回の UTF-8 対応のために、文字コード変換用ファンクタを用意しました。詳
細については jconv.h などをご覧下さい。簡易ユーティリティとして、以下の
関数を用意しています。
void convert_utf8_to_eucj(const std::string& from, std::string& to);
void convert_eucj_to_utf8(const std::string& from, std::string& to);
- * -
よろしくお願いします。
-- Tomotaka SUWA