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

如何正确编码 UTF-8 中的 HTTP 响应字节?

如何正确编码 UTF-8 中的 HTTP 响应字节?

Go
四季花海 2022-07-11 16:05:29
使用包发出 HTTP 请求后http,我正在阅读响应:    resp, _ := client.Do(request)    defer resp.Body.Close()    responseBody, _ := ioutil.ReadAll(resp.Body)    log.Println("body", string(responseBody))响应是 JSON 格式,包含俄语字符,所以我在控制台中看到{"error_code":201,"error_name":"\u041f\u043e\u043b ... "}如何解码响应字节以便我看到可读消息?
查看完整描述

1 回答

?
米琪卡哇伊

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

Go 中的 JSON 解码器可以处理编码符号,您需要在 struct 或其他值中解组有效负载:


https://play.golang.org/p/Mt-phU4kxfy


package main


import (

    "encoding/json"

    "fmt"

)


func main() {

    payload := []byte(`{"error_code":201,"error_name":"\u041f\u043e\u043b ... "}`)

    var p interface{}


    _ = json.Unmarshal(payload, &p)

    fmt.Printf("%#v\n", p) // map[string]interface {}{"error_code":201, "error_name":"Пол ... "}


    var e struct {

        ErrorCode int    `json:"error_code"`

        ErrorName string `json:"error_name"`

    }


    _ = json.Unmarshal(payload, &e)

    fmt.Println(e.ErrorCode, e.ErrorName) // 201 Пол ...

}


查看完整回答
反对 回复 2022-07-11
  • 1 回答
  • 0 关注
  • 127 浏览
慕课专栏
更多

添加回答

举报

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