テキストデータの文字エンコーディング方式を推測する
charsetdetectパッケージが提供するCodec.Text.Detect.detectEncodingName :: ByteString -> Maybe Stringを使います. ただし,ここで使っているByteStringはLazy版なので,Data.ByteString.Lazyをインポートしてください.
インポート
code: (haskell)
import Codec.Text.Detect -- charsetdetectパッケージが提供する
import Data.ByteString.Lazy as BL -- bytestringパッケージが提供する
実行例
code:_
>> import Codec.Text.Detect -- charsetdetectパッケージが提供する
>> import Data.ByteString as BL -- bytestringパッケージが提供する
>> main = BL.readFile "sample/sj.txt" >>= Prelude.putStrLn . maybe "Cannot detect" id . detectEncodingName
>> main
Shift_JIS