Terminal 当我试图将响应体打印为字符串时,golang发出奇怪的嘟嘟声

Terminal 当我试图将响应体打印为字符串时,golang发出奇怪的嘟嘟声,terminal,Terminal,我正试图在grpc服务中打印响应正文 body, err := ioutil.ReadAll(response.Body) fmt.Println(string(body)) 程序一到这一行,我的笔记本电脑就开始疯狂地发出嘟嘟声。停止会话或终止进程没有帮助。这需要我重新启动我的机器 假设我不进行字符串转换,那么代码工作正常,它打印出字节数组,并且不会产生任何噪音 body, err := ioutil.ReadAll(response.Body) fmt.Println(body) grpc

我正试图在grpc服务中打印响应正文

body, err := ioutil.ReadAll(response.Body)
fmt.Println(string(body))
程序一到这一行,我的笔记本电脑就开始疯狂地发出嘟嘟声。停止会话或终止进程没有帮助。这需要我重新启动我的机器

假设我不进行字符串转换,那么代码工作正常,它打印出字节数组,并且不会产生任何噪音

body, err := ioutil.ReadAll(response.Body)
fmt.Println(body)
grpc服务所做的只是发出http Get请求以下载文件并计算其校验和。当我尝试下载该文件时,出现了此问题


我添加这个问题是因为我知道这很有可能被否决,但我需要理解为什么会发生这种情况。这个问题听起来也非常奇怪和不可思议,但它发生在其他人身上了吗

如果出现错误,如何打印,并通过跳过不可打印的字符打印响应正文

body, err := ioutil.ReadAll(response.Body)

if err != nil {
    fmt.Printf("error: %s\n", err)
} else {
    fmt.Printf("%q\n", body)
}

如果出现错误,如何打印,并通过跳过不可打印的字符打印响应正文

body, err := ioutil.ReadAll(response.Body)

if err != nil {
    fmt.Printf("error: %s\n", err)
} else {
    fmt.Printf("%q\n", body)
}

fmt.Println(string(body))
语句按原样将响应字节写入stdout。数据中可能有某种东西导致终端发出嘟嘟声(例如CTRL-G)。通过使用
fmt.Printf(“%q\n”,body)
打印或使用.ThunderCathe
fmt.Println(string(body))
语句按原样将响应字节写入stdout来检查数据。数据中可能有某种东西导致终端发出嘟嘟声(例如CTRL-G)。通过使用
fmt.Printf(“%q\n”,body)
打印或使用写入数据来检查数据。谢谢@thundercathanks@ThunderCat,根据您的建议更新答案@ThunderCat,对不起,我刚才看到你已经在对问题的评论中找到了答案,你应该把答案贴出来。谢谢!它现在打印出响应。我提供的其中一个文件是.zip格式的。我想知道打印出这个请求的响应是否导致了这个问题。@Aarvi-很高兴它停止了嘟嘟声!您是对的,将二进制文件打印到控制台可能会出现这样的情况,就像您意外地
cat
type
(在DOS中)zip文件可能会再次发出嘟嘟声一样;-)谢谢@ThunderCat,回复更新您的建议@ThunderCat,对不起,我刚才看到你已经在对问题的评论中找到了答案,你应该把答案贴出来。谢谢!它现在打印出响应。我提供的其中一个文件是.zip格式的。我想知道打印出这个请求的响应是否导致了这个问题。@Aarvi-很高兴它停止了嘟嘟声!您是对的,将二进制文件打印到控制台可能会出现这样的情况,就像您意外地
cat
type
(在DOS中)zip文件可能会再次发出嘟嘟声一样;-)