タイトルのとおり、私はIO操作のASCII以外の文字( 'á'、 'など'など)を扱う際に問題があります。例(Unix環境)を見てください:IO操作で非ASCII文字を処理するにはどうすればよいですか?
import System.Cmd
system "ls aaaá"
WICH lsコマンドコードエラーを返す:
(...)ls: can't access "aaa�" : no such file or directory(...)
が、私はこれをどのように修正することができますか?
'system'のように見えるのは、255を超える文字コードを切り捨てるだけです。文字列をロケールのエンコード(おそらくUTF8)に変換する必要があると思います。 –
最後にチェックしたところ、Linuxはファイル名にUTF-8を使用しています。私は 'system'関数がこの変換を自動的に行うとは思いません。 –
私は自分のシステム(Ubuntu、GHC 7.2.1)をチェックしたところ、変換せずに動作します。 (私の前のコメントは純粋な推測だった、私はコンピュータから離れていた)。 UTF以外のロケールを使用している可能性があります。 –