猿问

当 python 服务器通过 gRPC 获取数据时,如何修复格式错误的字符串输出?

制作服务器(python),客户端(golnag)


当客户端通过 gRPC 发送字符串数组时


服务器打印奇怪的数据。


.proto下面的例子

message HiRequest {

    repeated string hi = 1;

}

下面是golang代码

input := new(pb.HiRequest)

input.Hi = append(input.Hi, "안녕")

input.Hi = append(input.Hi, "おはよう")

input.Hi = append(input.Hi, "Hello")

// Send to server

下面的python代码

print(request.hi)

预期输出是

hi: "안녕"

hi: "おはよう"

hi: "Hello"

但实际输出是

hi: "\354\225\210\353\205\225"

hi: "\343\201\212\343\201\257\343\202\210\343\201\206"

hi: "Hello"

谁能告诉我原因?和解决方案PLZ


慕莱坞森
浏览 156回答 1
1回答

白板的微信

发生的情况是您发送 Unicode 字符并将它们编码为 1 字节字符。假设您收到的值是字节类型,只需执行以下操作:value.decode()例如:value = b"\343\201\212\343\201\257\343\202\210\343\201\206" # creating a bytes type stringprint(value.decode())>>> おはよう编辑:对于任何其他绊倒的人:如果我所说的对您不起作用,请将.proto文件中的值更改为字符串中的字节
随时随地看视频慕课网APP

相关分类

Go
我要回答