#shokos ちゃんは、Mac だと書いていますね。
#あ、Windows *以外* でしたか。失礼しました。GHC 7.4 on Mac で、UTF-8 のファイル名が取り扱えることを確認しました。GHC 7.0.4 on Mac では、ファイル名が化けることも確認しました。
#いろいろ、試してみましたが、GHC 7.4 を使って、System.IO.UTF8 は忘れるのが良さそうです。
#あと、中身がバイナリの話をしているのに、よく読まずに hSetEncoding h utf8 と言ってしまいました。すいません。中身がバイナリの場合は、openBinaryFile などを使うべきです。
#みなさんどうもありがとうございました!
Codec.Binary.UTF8.Stringでうまく行きました。
import Data.ByteString as B
import Codec.Binary.UTF8.String as S
main :: IO ()
main = do
body <- B.readFile "hoge.jpg"
B.writeFile (S.encodeString "ほげ.jpg") body
ハマりどころな気がするので、近日中にブログにでもまとめておきます。
GHC7.4は、今実装中のものが一段落したら試してみたいと思います。
どうもありがとうございました!
#こちらこそ勉強になりました。みなさまに感謝です。