めも。
% cabal install utf8-string
でCodec.Binary.UTF8.Stringを導入し、encodeStringする。
unpack-utf8.hs
import Codec.Binary.UTF8.String import System.Environment main = do cs <- getArgs print $ head cs print $ encodeString $ head cs
実行してみる。
% ghc unpack-utf8.hs % ./unpack-utf8 あ "\12354" "\227\129\130"
どうしてもCodec.Binary.UTF8.Stringを入れたくないときは、
import Data.String import Data.Text.Encoding import qualified Data.Text as T import qualified Data.ByteString.Char8 as C import System.Environment unpackUTF8 :: String->String unpackUTF8 = C.unpack . encodeUtf8 . fromString main = do cs <- getArgs print $ head cs print $ unpackUTF8 $ head cs
とかやれば同じ結果が得られそうです。