tech

浮動小数点の罠?

以前のエントリで FreeBSD の PHP では log(64) の結果 float(6) を整数にキャストするとなぜか int(5) になるということを書きました。今回はその続き。 まず PHP の log 関数は ext/standard/math.c に実装されており、引数が二つの場合は RETURN_DOUBLE(l…

MeCab 0.94

リリースされました。 C言語の API では mecab_sparse_tonode(), mecab_sparse_tonode2() の返り値や mecab_node_t 構造体のメンバ surface, feature 等に const 修飾子が付いたのが注意すべき点かもしれません。 とりあえずコンパイラが警告を出したら非 co…

ICU 3.6

ちょいと訳ありでヘッダを grep してたら ucsdet.h てのがあるじゃないですか。 つまり文字コード判定用の API。 下記のようなコードで適当に試してみたところ、UTF-8 は正しく認識してくれたものの、Shift_JIS が ISO-8859-5 と判定されたり EUC-JP が Shif…

Unicode まとめ

ウニよりもカキのほうが好きな僕ですが、ちょっと前まで unichr() 絡みでウニウニ言っていたときに調べた Unicode 関連のまとめ。 僕自身このまとめが正しいか確信できていないのですが、個人的なメモとして残しておきます。 文字セット 空間 符号化方式 (oc…

ICU を使ってみた

色々とありまして、間が空いてしまいました。 最近ついに C 言語に手を染めてしまい、Hello World -> Epeg/Imlib2 を弄ってみる -> 標準入出力を弄ってみる -> ICU を弄ってみる -> コマンドライン引数を解釈してみる -> メモリ管理やバッファオーバーフロー…