gpt4 book ai didi

java - 使用 google protocol buffers 传输 String 字符时,出现乱码

转载 作者:行者123 更新时间:2023-11-30 05:50:22 27 4
gpt4 key购买 nike

在调试 View 中:

这是编码成乱七八糟的字符串的代码...

((S2CEnterCollection)objS2c).toByteString().toStringUtf8();

输出:

    ���"default(
���"default(
���"default(
���"default(
���"default(
����"default(
����"default(
�����"default(

这是具有正确字符串的代码:

((S2CEnterCollection)objS2c).toString()

原始字符串是:

    cardList {
cardId: 100001
liked: 100
number: 10
finder: "default"
rank: 1
}
cardList {
cardId: 100002
liked: 123
number: 10
finder: "default"
rank: 1
}
cardList {
cardId: 100003
liked: 543
number: 10
finder: "default"
rank: 1
}
cardList {
cardId: 100004
liked: 766
number: 10
finder: "default"
rank: 1
}
cardList {
cardId: 100005
liked: 78
number: 10
finder: "default"
rank: 1
}
cardList {
cardId: 100006
liked: 89
number: 123
finder: "default"
rank: 1
}
cardList {
cardId: 100007
liked: 199
number: 567
finder: "default"
rank: 1
}
cardList {
cardId: 100008
liked: 90909
number: 232
finder: "default"
rank: 1
}

那么,有人知道它是如何工作的吗?

最佳答案

protobuf 数据是二进制的,不是编码文本。您不能通过像 UTF-8 这样的编码运行它并期望得到一个字符串(或者期望它仍然有效)。将 protobuf 数据转换为字符串的唯一方法是通过对某些 N(通常为 64)的 base-N 编码运行它(因为它在大多数平台上得到很好的支持)。

关于java - 使用 google protocol buffers 传输 String 字符时,出现乱码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14189808/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com