Haskell IO 俄语符号

发布于 2024-09-01 07:38:04 字数 136 浏览 3 评论 0原文

我试图处理包含俄语符号的文件。在读取和写入一些文本到文件后,我得到类似的内容:

\160\192\231\229\240\225\224\233\228\230\224\237

我怎样才能得到正常符号?

I an trying to process a file which contains russian symbols. When reading and after writing some text to the file I get something like:

\160\192\231\229\240\225\224\233\228\230\224\237

How can I get normal symbols?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

楠木可依 2024-09-08 07:38:04

如果您获取带有反斜杠和数字的字符串,那么听起来当您想调用“putStr”时,您可能正在调用“print”。

If you are getting strings with backslashes and numbers in, then it sounds like you might be calling "print" when you want to call "putStr".

感情旳空白 2024-09-08 07:38:04

如果您处理 Unicode,您可以尝试 utf8-string package< /a>

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 系统上正常工作。但是,在所有系统上写入文件都应该成功。

更新:

有关编码包使用的示例

If you deal with Unicode, you might try 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 "Вася Пупкин"

However it didn't work well in my windows CLI garbling the output because of codepage. I expect it to work fine on other Unix-like systems if your locale is set correctly. However writing to file should be successfull on all systems.

UPDATE:

An example on encoding package usage.

小霸王臭丫头 2024-09-08 07:38:04

我已经成功了。

{-# 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

I have got success.

{-# 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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文