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

2024-05-04 15:10:02 发布

您现在位置:Python中文网/ 问答频道 /正文

制作服务器(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

谢谢


Tags: 数据字符串代码服务器客户端示例helloinput
1条回答
网友
1楼 · 发布于 2024-05-04 15:10:02

发生的情况是,您发送Unicode字符,并将其编码为1字节字符。假设您收到的值是bytes类型,只需执行以下操作:

value.decode()

例如:

value = b"\343\201\212\343\201\257\343\202\210\343\201\206" # creating a bytes type string
print(value.decode())
>>> おはよう

编辑:

对于任何其他绊倒的人: 如果我所说的对您不起作用,请将.proto文件中的值从string更改为bytes

相关问题 更多 >