为了账号安全,请及时绑定邮箱和手机立即绑定

读取响应体时获取 unicode 字符作为字符串(Golang)

读取响应体时获取 unicode 字符作为字符串(Golang)

Go
白猪掌柜的 2023-02-21 16:44:27
我正在抓取一个用波兰语编写的网站,这意味着它包含 ź 和 ę 等字符。当我尝试解析 html 时,无论是使用 html 包还是通过拆分响应主体的字符串,我都会得到如下输出:���~♦�♀�����r�▬֭��↔��q���y���<p��19��lFۯ☻→Z�7��我目前正在使用bodyBytes, err := ioutil.Readall(resp.body)if err != nil {  //handle} bodyString := string(bodyBytes)为了得到字符串如何获得可读格式的文本?
查看完整描述

2 回答

?
子衿沉夜

TA贡献1828条经验 获得超3个赞

更新:


由于响应的内容编码是 gzip,下面的代码用于将响应作为可打印字符串获取


gReader, err := gzip.NewReader(resp.Body)

if err != nil {

    return err

}

gBytes, err := ioutil.ReadAll(gReader)

if err != nil {

    return err

}

gReader.Close()

bodyStr := string(gBytes)


查看完整回答
反对 回复 2023-02-21
?
互换的青春

TA贡献1797条经验 获得超6个赞

你在哪个网站上工作?当我在维基百科页面上测试时,我得到了正确的字符


package main


import (

    "fmt"

    "io"

    "net/http"

)


func main() {

    resp, err := http.Get("https://en.wikipedia.org/wiki/Polish_alphabet")

    if err != nil {

        // handle error

    }

    defer resp.Body.Close()

    b, err := io.ReadAll(resp.Body)

    if err != nil {

        panic(err)

    }

    bodyStr := string(b)

    fmt.Println(bodyStr)

}


<td>Ą</td>

<td>Ć</td>

<td>Ę</td>


查看完整回答
反对 回复 2023-02-21
  • 2 回答
  • 0 关注
  • 181 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信