我试着用俄语符号写的进程文件。当读写文本后提交我得到这样的:Haskell IO俄罗斯符号
“\ 160 \ 192 \ 231 \ 229 \ 240 \ 225 \ 224 \ 233 \ 228 \ 230 \ 224 \ 237”
我怎么能得到正常的符号?
感谢
我试着用俄语符号写的进程文件。当读写文本后提交我得到这样的:Haskell IO俄罗斯符号
“\ 160 \ 192 \ 231 \ 229 \ 240 \ 225 \ 224 \ 233 \ 228 \ 230 \ 224 \ 237”
我怎么能得到正常的符号?
感谢
我已经成功了。
{-# LANGUAGE ImplicitParams #-}
import Network.HTTP
import Text.HTML.TagSoup
import Data.Encoding
import Data.Encoding.CP1251
import Data.Encoding.UTF8
openURL x = do
x <- simpleHTTP (getRequest x)
fmap (decodeString CP1251) (getResponseBody x)
main :: IO()
main = do
tags <- fmap parseTags $ openURL "http://www.trade.su/search?ext=1"
let TagText r = partitions (~== "<input type=checkbox>") tags !! 1 !! 4
appendFile "out" r
如果处理Unicode的,你可以尝试utf8-string package
import System.IO hiding (hPutStr, hPutStrLn, hGetLine, hGetContents, putStrLn)
import System.IO.UTF8
import Codec.Binary.UTF8.String (utf8Encode)
main = System.IO.UTF8.putStrLn "Вася Пупкин"
但是它并没有在我的Windows很好地工作CLI错乱,因为代码页的输出。如果您的语言环境设置正确,我希望它能在其他类Unix系统上正常工作。但是,写入文件应该在所有系统上都是成功的。
更新:对编码包使用
他不处理unicode。根据Firefox,他链接的页面在Windows-1251中编码。 – sepp2k 2010-05-15 13:21:52
然后[编码包](http://hackage.haskell.org/package/encoding)可能是有用的,它有[System.Encoding.CP1251](http://hackage.haskell.org/packages/archive/encoding /0.6.3/doc/html/Data-Encoding-CP1251.html)。 – 2010-05-15 13:28:51
我有一些问题在Windows上安装此软件包。无法找到库 我试试这样: cd c:\ Users \ test_8 \ Desktop \ encoding-0.6.3 runhaskell Setup.hs configure --extra-include-dirs =“c:\ Users \ test_8 \ Desktop \ encoding-0.6.3“--extra-lib-dirs =”c:\ Users \ test_8 \ Desktop \ encoding-0.6.3“ 但是得到这个: Setup.hs:缺少对外部库的依赖: *缺少头文件:system_encoding.h – Anton 2010-05-15 14:21:43
如果你正在使用反斜杠和数字的字符串,那么当你想调用“putStr”时,你可能会调用“print”。
我尝试解析网页www.trade.su/search?ext=1 – Anton 2010-05-15 12:43:46