Haskell のソースコードにUTF8以外の日本語を記入するとコンパイル時にエラーになります。(コメントはOK)
UTF8の日本語を出力するときも、そのままでは出力できず、 utf8-string パッケージをインストールして System.IO.UTF8のputStrLnなどを使用しなければなりません。
-- UTF8のファイル import System.IO.UTF8 main = System.IO.UTF8.putStrLn "こんにちはハスケル!"
SJIS のファイルを読み込んで表示する分にはそのままでOKです。
PS D:\haskell\json> cat sjis.txt Windows では SQL server、MS-Access など SJIS でないとやりにくい。 こんにちはハスケル! SELECT * FROM table WHERE name='鳩山'
こんな SJIS のテキストファイルを readFile で読み込み表示します。
PS D:\haskell\json> ghci Prelude> nihonngo <- readFile "./sjis.txt" Prelude> putStrLn ((lines nihonngo)!!0) Windows では SQL server、MS-Access など SJIS でないとやりにくい。 Prelude> putStrLn ((lines nihonngo)!!2) SELECT * FROM table WHERE name='鳩山'
SJIS日本語を含んだ SQL文が必要なときなど、以下の文字化けした SQL文ならソースに貼り付けても OK です。
Prelude> ((lines nihonngo)!!2) "SELECT * FROM table WHERE name='\148\181\142R'"
青木さんの『ふつうのHaskellプログラミング』のサンプル Wiki「LazyLines」は EUCを使って変換せずに表示しています。
UTF8からSJISに変換してもOK、たぶん。
'\148\181\142R' は何という表記方法かな・・・。