#windowsでiconvを使いたいときには GNU libiconv がよく使われてます。
#教えてくれてありがとうございます > sakai さん
#nwnさんのを試そうと思ったら iconvが入って無かった。入れようとして、挑戦中
#c:\sakae\gsay>cabal.exe update
Downloading the latest package list from hackage.haskell.org
c:\sakae\gsay>cabal.exe install iconv
Resolving dependencies...
Downloading iconv-0.4.0.2...
Configuring iconv-0.4.0.2...
cabal.exe: Missing dependency on a foreign library:
* Missing header file: iconv.h
This problem can usually be solved by installing the system package that
provides this library (you may need the "-dev" version). If the library is
already installed but in a non-standard location then you can use the flags
--extra-include-dirs= and --extra-lib-dirs= to specify where it is.
cabal.exe: Error: some packages failed to install:
iconv-0.4.0.2 failed during the configure step. The exception was:
exit: ExitFailure 1
#先は長そうです。とほほ。
#libiconv 入れたらいける気もしますが、
#convert を iconv を呼ぶ実装にするっていう方法もあります
##iconv (GNU libiconv 1.13)を入れていざ実行しようとすると
#*Main> :main
Loading package syb ... linking ... done.
Loading package base-3.0.3.1 ... linking ... done.
Loading package bytestring-0.9.1.4 ... linking ... done.
Loading package utf8-string-0.3.5 ... linking ... done.
Loading package iconv-0.4.0.2 ... linking ... <interactive>: C:\Program Files\Haskell\iconv-0.4.0.2\ghc-6.10.3\HSiconv-0.4.0.2.o: unknown symbol `_iconv_open'
: unable to load package `iconv-0.4.0.2'
#おかしいなあ?
#convert を iconv を呼ぶ実装にするっていう方法もあります こちらで試した方が早そうですね
#*Main> :main
Loading package syb ... linking ... done.
Loading package base-3.0.3.1 ... linking ... done.
Loading package bytestring-0.9.1.4 ... linking ... done.
Loading package old-locale-1.0.0.1 ... linking ... done.
Loading package old-time-1.0.0.2 ... linking ... done.
Loading package filepath-1.1.0.2 ... linking ... done.
Loading package Win32-2.2.0.0 ... linking ... done.
Loading package directory-1.0.0.3 ... linking ... done.
Loading package process-1.0.1.1 ... linking ... done.
Loading package utf8-string-0.3.5 ... linking ... done.
*** Exception: no buffering
*Main>
#はう
#mapM_ (flip IO.hSetBuffering IO.NoBuffering) [inh,outh,errh] をコメントアウトしてみてください
#ていうかこの例外初めて見た
#Loading package utf8-string-0.3.5 ... linking ... done.
*** Exception: no buffering
#うーむ、じゃあちゃんとバッファリングを決めてみましょう
#iconvを入れた時、おかしくしちゃったかな?
#そんなことはないと思われる
#mapM_ (flip IO.hSetBuffering IO.LineBuffering) [inh,outh,errh] とかどうですか?
#あ、対話環境から呼んでみたらこっちでも再現しました
#コンパイルしてシェルから実行してみてください
#動きました。
#ktkr
#日本語もOKです
#よかったー
#対話環境と差があるっていやですね。
#それはしょうがないと思われる
#stdin を NoBuffering にしないと補完とかしんどいと思うし
#了解しました。これからコードを読んでみます。
#Happy Haskelling!
##いつも、こういう深い所まで降りて行かれるのですか?
#確かに一番勉強にはなりますが。。。
#こういうIO周りが一番難しい!!
#IO むずいですよね
#今回はここではまってるんだろうなっていうのが何となくわかったのですぐ見つかりました
#いつもいつもソース読むわけじゃないです
#だいたいはドキュメントだけ読んで済ませます
#そのドキュメントもたくさん有り過ぎて。。
#rubyみたいに、逆引き出来るcookbookが欲しいです。
#贅沢かな?
#cookbook かー。普通に欲しいですね。
#haskell wiki が役割的には近いかも
#そうかも知れませんね。
###Oh! これは良い。
#早速、bookmarkしました。
#でも cookbook を作れるだけのコンセンサスが得られていないような気がする