iconv発見

Common Lispnkfみたいなのはないのかと思ったらiconv発見。
(asdf-install:install "iconv")
しても404だったのでweb archiveからとってくる。

http://web.archive.org/http://www.swj.co.jp/~tahara/lisp/lib/iconv_0.2.tar.gz

~/.sbcl/site/以下に展開し、
ln -sf ~/.sbcl/site/iconv/iconv.asd ~/.sbcl/systems/iconv.asd
しておく。

使い方がわからんのでテストを見ると…

(with-tests ()
  (test
   (list #(164 162 164 164 164 166) #())
   (iconv:iconv "UTF-8" "EUC-JP"
                (coerce #(227 129 130 227 129 132 227 129 134)
                        '(vector (unsigned-byte 8))))
   :test #'equalp
   :multiple-values t)

  (test
   (list #(0 63 63 164 164 164 166) #())
   (iconv:iconv "UTF-8" "EUC-JP"
                (coerce #(0 129 130 227 129 132 227 129 134)
                        '(vector (unsigned-byte 8))))
   :test #'equalp
   :multiple-values t)
)

んー、vectorvectorの関数なのかぁ…使いづらそう。
文字列→文字列で文字コード変換できるやつないのかな。

まだまだ実用化への道は通そうだ…