memo

ちょっとしたメモ書き(個別表示)

haxe-iconv : (2006/05/11)
文字コードの変換ができないのはちょっと不便なので、haXe用の
libiconvバインディングを書いてみました
haxe-iconv.060524a.tar.gz(5/24更新)

neko用の拡張ライブラリに必要なファイル(neko.hとかlibneko.soとか)の場所を知りたいんだけど、configコマンドが提供されてないみたいなので、各自場所を調べて-Iやら-Lやらで指定してください。
(${NEKO_DIR}という部分を適時読み替えてください)


gcc -O3 -fPIC -c -I ${NEKO_DIR}/neko/vm iconv.c
gcc -shared -L ${NEKO_DIR}/neko/bin -l neko -l iconv \
-o iconv.ndll iconv.o

iconv.ndllというのが、NekoVMがlibiconvの関数へアクセスするためのライブラリです。こいつはNekoVM実行時に見える場所へ置いてください(LD_LIBRARY_PATHが通った場所でOKです)

haxe用のサンプルプログラムのコンパイル、実行は以下のような感じで

haxe -cp ${HAXE_DIR}/std -neko sample.n -main Sample.hx
neko sample.n

クラスライブラリであるIconv.hxは、どこでもいいのでクラスパスの通ったところへ置いて下さい。

肝心の使い方ですが、インスタンスメソッド版とクラスメソッド版の2種類です

// クラスメソッド版
Iconv.convert("これはEUC-JP文字列", "UTF-8", "EUC-JP");

// インスタンスメソッド版
var o = new Iconv("これはEUC-JP文字列", "EUC-JP");
o.convert("UTF-8");

利用可能な文字コード一覧は、コマンド「iconv -l」で調べて下さい。

: back