2014-04-15 147 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 

Ижора-С