2014-04-15 146 views
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解析的字符串?

回答

0

使用decodeUtf8从与pack组合Data.Text.EncodingData.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 

Ижора-С