CaHDTools 0.31をリリースします。
配布場所
変更内容
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というなんだかそそられるクラスがあるのですが、今回これを試してみたところ、このクラスをロードする瞬間にアプリケーション丸ごとお亡くなりになりました.......。
だめなんですかね?