0

単純化されたパーサーの例である hxt を使用して、utf8 でエンコードされたページを解析しています。

names = multi (hasName "h1") >>> proc h1 do
  name <- getText <<< getChildren -< h1
  returnA name

名前を印刷しようとするまで、すべてが正常に機能します。

*Main > n
"\208\152\208\182\208\190\209\128\208\176-\208\161"
*Main > :t n
n :: String
*Main > putStrLn n
ÐжоÑа-С
*Main > Data.Text.IO.putStrLn $ Data.Text.pack n
ÐжоÑа-С

オプションを使用して解析していますwithInputEncoding "utf8"。hxt によって解析された文字列を適切にエンコードするにはどうすればよいですか?

4

1 に答える 1

0

decodeUtf8fromData.Text.Encodingと組み合わせてpackfromを使用しData.ByteString.Char8.packます。

*Main > import Data.Text.Encoding as E
*Main > import Data.ByteString.Char8 as C
*Main > import Data.Text.IO as T

*Main > T.putStrLn . E.decodeUtf8 . C.pack $ n

Ижора-С
于 2014-04-15T13:48:53.400 に答える