Haskell 结合http导管和手术刀核心时的文本编码
然后,结果文本被置乱。正如您在我的导入列表中看到的,我尝试使用Data.Text类型,但我做错了什么。另外,当我尝试在responseBody或内容上使用decodeUtf8时,我收到了以下消息: ch1.txt:commitAndReleaseBuffer:无效参数(无效字符)Haskell 结合http导管和手术刀核心时的文本编码,haskell,Haskell,然后,结果文本被置乱。正如您在我的导入列表中看到的,我尝试使用Data.Text类型,但我做错了什么。另外,当我尝试在responseBody或内容上使用decodeUtf8时,我收到了以下消息: ch1.txt:commitAndReleaseBuffer:无效参数(无效字符) 你知道我做错了什么吗?你想在这里解码/编码UTF8是正确的,你只需要做一些小的更改: let innerText = scrapeStringLike responseBody
你知道我做错了什么吗?你想在这里解码/编码UTF8是正确的,你只需要做一些小的更改:
let innerText = scrapeStringLike responseBody
$ do chroot "tr" $ do text "tr"
case innerText of
(Just content) -> L8.writeFile "ch1.txt" content
Nothing -> L8.writeFile "ch1.txt" ""
{-#语言重载字符串}
模块主要在哪里
导入库
导入Network.HTTP.Simple
将限定的Data.ByteString.Lazy.Char8导入为L8
导入Text.HTML.sparcel
导入Data.Text.Lazy.Encoding(解码UTF8,编码UTF8)
main::IO()
main=do
让地址=”http://www.myriobiblos.gr/bible/nt2/matthew/1.asp"
响应L8.writeFile“ch1.txt”(encodeUtf8内容)
无->返回()
对正文进行解码以获取文本内容,对其进行操作,然后再次对其进行编码以获取要写入磁盘的字节
let innerText = scrapeStringLike responseBody
$ do chroot "tr" $ do text "tr"
case innerText of
(Just content) -> L8.writeFile "ch1.txt" content
Nothing -> L8.writeFile "ch1.txt" ""
{-# LANGUAGE OverloadedStrings #-}
module Main where
import Lib
import Network.HTTP.Simple
import qualified Data.ByteString.Lazy.Char8 as L8
import Text.HTML.Scalpel
import Data.Text.Lazy.Encoding (decodeUtf8, encodeUtf8)
main :: IO ()
main = do
let address = "http://www.myriobiblos.gr/bible/nt2/matthew/1.asp"
response <- httpLBS address
putStrLn $ "The status code was: " ++
show (getResponseStatusCode response)
print $ getResponseHeader "Content-Type" response
let responseBody = decodeUtf8 $ getResponseBody response
let innerText = scrapeStringLike responseBody
$ do chroot "tr" $ do text "tr"
case innerText of
(Just content) -> L8.writeFile "ch1.txt" (encodeUtf8 content)
Nothing -> return ()