Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell 结合http导管和手术刀核心时的文本编码_Haskell - Fatal编程技术网

Haskell 结合http导管和手术刀核心时的文本编码

Haskell 结合http导管和手术刀核心时的文本编码,haskell,Haskell,然后,结果文本被置乱。正如您在我的导入列表中看到的,我尝试使用Data.Text类型,但我做错了什么。另外,当我尝试在responseBody或内容上使用decodeUtf8时,我收到了以下消息: ch1.txt:commitAndReleaseBuffer:无效参数(无效字符) 你知道我做错了什么吗?你想在这里解码/编码UTF8是正确的,你只需要做一些小的更改: let innerText = scrapeStringLike responseBody

然后,结果文本被置乱。正如您在我的导入列表中看到的,我尝试使用Data.Text类型,但我做错了什么。另外,当我尝试在responseBody或内容上使用decodeUtf8时,我收到了以下消息:

ch1.txt:commitAndReleaseBuffer:无效参数(无效字符)


你知道我做错了什么吗?

你想在这里解码/编码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 ()