CaHDTools 0.31をリリースします。

配布場所

http://zaurus.catstar.org/CaHDTools/index.html で配布しています。

変更内容

http://d.hatena.ne.jp/kaichosan/20060818 で指摘いただいた、文字化けの件に対処した版です。
id:kaichosan さん、また同エントリでコメント頂きました id:nurse さん、どうもありがとうございました。

障害の原因

実はnkfとは全然関係のない、Qtで提供されているコーデックの使い方の問題でした。


// OKなパターン
QString eucjptext = "EUCJPで書いた日記のなかみ。";
QString str;
QTextOStream tos(&str);
tos.setCodec(QTextCodec::codecForName("eucJP"));
// EUCJPにセットされているtos(TextOStream)に、
// QString(Unicode)からEUCにきちんと変換して渡してやる。
// codecはsingletonでアプリケーションが処理するのでdelete不要。
QTextCodec *codec = QTextCodec::codecForName("eucJP");
tos << codec->fromUnicode(eucjptext) << CRLF;

// だめだめなパターン(普通の日本語文字はなぜかうまくいってた)
QString eucjptext = "EUCJPで書いた日記のなかみ。";
QString str;
QTextOStream tos(&str);
tos << eucjptext.local8Bit() << CRLF;
てなわけで、まぁ、ちゃんと設定しなさいよ、というだけの話なところが情けないです。

QEucJpCodecはだめなの?

Qt2.3*1には、QEucJpCodecというなんだかそそられるクラスがあるのですが、今回これを試してみたところ、このクラスをロードする瞬間にアプリケーション丸ごとお亡くなりになりました.......。
だめなんですかね?

*1:SL-zaurusでつかってるのってこれであってますよね?