Iconv を試す

This entry was posted by on Wednesday, 30 November, 2005
>そういえば、前にさかいさんが iconv を呼出す Haskell モジュールを作ってたなぁと思い出し→ >http://www.ruby-talk.org/cgi-bin/scat.rb/haskell/haskell-jp/403 >使ってみた。 > >折角なので、テストする際に cabal なパッケージをデッチ上げてみた。手元だけで動くのはさほど難しくなく一瞬で出来てしまうのだが、 cc-options とかの設定をチェックさせるのが面倒くさいけど、まぁ細かいことは気にしない方針で。 > >デッチ上げ方ですが、次のような内容の Iconv.cabal というファイルを用意し、 > >Name: Iconv
Version: 0.1
Author: Masahiro Sakai
Category: Text
Build-Depends: base, haskell98
Synopsis: Iconv interface for Haskell.
Exposed-modules: Text.Iconv
cc-options: -I/usr/local/include
ld-options: -L/usr/local/lib
ghc-options: -fglasgow-exts
extra-libraries: iconv
> >Text というディレクトリを掘って Iconv.hsc をそこに配置。個人的な趣味で Text.Iconv にしているので、 Iconv.hsc のモジュール名も Text.Iconv に変更。んで次の2行を含む「Setup.hs」を作成。 > >import Distribution.Simple
main = defaultMain
> >んで、 > >$ runghc Setup.hs configure
$ runghc Setup.hs build
# runghc Setup.hs install
> >でインストール完了。普通のプログラムで ghc -package Iconv できます。サンプルコードは、 > >import Text.Iconv
import Maybe
main = list >>= return . fromMaybe [] >>= mapM_ putStrLn
> >とか、 > >import Text.Iconv
import Data.Char
main = do fileData <- readFile "test.txt"
mapM_ (chr.fromEnum) $
fst $ convert "UTF-8" "EUC-JP" $
map (toEnum.ord) fileData
> >とか。ふむ。 >

Comments are closed.