Iconv を試す
>そういえば、前にさかいさんが 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 > >とか。ふむ。 >
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 > >とか。ふむ。 >
