http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/haskell/haskell-jp/403

にあるIconv.hsc使ってる。ただ、このバージョンだとメモリリークするバグがあるので次のようにして直す(他にも[Word8]ではなく、StringからStringに変換する関数を追加してる)。

19c19
< module Iconv
---
> module Text.Iconv
25a26
> , iconvString
27c28
<
---
> , convertString
36c37,38
< import Monad (liftM)
---
> import Control.Monad (liftM)
> import Control.Exception (evaluate)
111a114,119
> iconvString :: Iconv -> String -> IO (String, Maybe Error)
> iconvString iconvData str
> = do
> (r, e) <- iconv iconvData (map (toEnum . fromEnum) str)
> return (map (toEnum . fromEnum) r, e)
>