猿问

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

我正在抓取一个用波兰语编写的网站,这意味着它包含 ź 和 ę 等字符。


当我尝试解析 html 时,无论是使用 html 包还是通过拆分响应主体的字符串,我都会得到如下输出:


���~♦�♀�����r�▬֭��↔��q���y���<p��19��lFۯ☻→Z�7��

我目前正在使用


bodyBytes, err := ioutil.Readall(resp.body)

if err != nil {

  //handle

bodyString := string(bodyBytes)

为了得到字符串


如何获得可读格式的文本?


白猪掌柜的
浏览 182回答 2
2回答

子衿沉夜

更新:由于响应的内容编码是 gzip,下面的代码用于将响应作为可打印字符串获取gReader, err := gzip.NewReader(resp.Body)if err != nil {&nbsp; &nbsp; return err}gBytes, err := ioutil.ReadAll(gReader)if err != nil {&nbsp; &nbsp; return err}gReader.Close()bodyStr := string(gBytes)

互换的青春

你在哪个网站上工作?当我在维基百科页面上测试时,我得到了正确的字符package mainimport (&nbsp; &nbsp; "fmt"&nbsp; &nbsp; "io"&nbsp; &nbsp; "net/http")func main() {&nbsp; &nbsp; resp, err := http.Get("https://en.wikipedia.org/wiki/Polish_alphabet")&nbsp; &nbsp; if err != nil {&nbsp; &nbsp; &nbsp; &nbsp; // handle error&nbsp; &nbsp; }&nbsp; &nbsp; defer resp.Body.Close()&nbsp; &nbsp; b, err := io.ReadAll(resp.Body)&nbsp; &nbsp; if err != nil {&nbsp; &nbsp; &nbsp; &nbsp; panic(err)&nbsp; &nbsp; }&nbsp; &nbsp; bodyStr := string(b)&nbsp; &nbsp; fmt.Println(bodyStr)}<td>Ą</td><td>Ć</td><td>Ę</td>
随时随地看视频慕课网APP

相关分类

Go
我要回答