From t-suwa @ users.sourceforge.jp Mon Nov 27 18:09:07 2006 From: t-suwa @ users.sourceforge.jp (Tomotaka SUWA) Date: Mon, 27 Nov 2006 18:09:07 +0900 Subject: [aquaskk-dev 61] =?iso-2022-jp?b?dXRmOC0xLjAgGyRCJWolaiE8JTkbKEI=?= Message-ID: 諏訪です。 AquaSKK BETA utf8-1.0 をリリースしました。 ▽追加・改善された機能 ・ユーザー辞書を UTF-8 化(skk-jisyo.utf8) ・SKK-JISYO.JIS3_4 に対応 ▽不具合修正 ・特になし ■ Dictionary インタフェースの変更について 依存関係を減らすために、CppCFString を 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; }; ===================== ここまで ==================== ユーザー辞書にも同様の変更を行なっています。std::string の中身は、 UTF-8 です。 具象辞書クラスの findOkuriAri/findOkuriNasi では、引数を UTF-8 から EUC に変換するなどして検索し、結果を UTF-8 に変換して返します。 例えば、『かんじ /漢字/寛治/感じ/』というエントリがある場合には、UTF-8 な "/漢字/寛治/感じ/" を返すことになります。 ■ 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); を用意してあります。名前空間は jconv です。 - * - よろしくお願いします。 -- Tomotaka SUWA From t.suwa @ mac.com Mon Nov 27 23:46:54 2006 From: t.suwa @ mac.com (t.suwa @ mac.com) Date: Mon, 27 Nov 2006 23:46:54 +0900 Subject: [aquaskk-dev 62] =?iso-2022-jp?b?dXRmOCAxLjAgGyRCJWolaiE8JTkbKEI=?= Message-ID: 諏訪です。 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 From t-suwa @ users.sourceforge.jp Tue Nov 28 21:58:08 2006 From: t-suwa @ users.sourceforge.jp (Tomotaka SUWA) Date: Tue, 28 Nov 2006 21:58:08 +0900 Subject: [aquaskk-dev 63] =?iso-2022-jp?b?UmU6IHV0ZjggMS4wIBskQiVqJWobKEI=?= =?iso-2022-jp?b?GyRCITwlORsoQg==?= In-Reply-To: References: Message-ID: 諏訪です。 すみません、メールが届かなかったので、二重送信してしまいました。 お詫びだけではあんまりなので、ご報告。 現状では、skkserv 経由で SKK-JISYO.JIS3_4 な辞書のエントリを検索した場 合に問題が発生することがわかりました。 近日中にこの問題を修正した BETA をリリースする予定です。 よろしくお願いします。 -- Tomotaka SUWA