- 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」で調べて下さい。