Python Ошибка декодирования UTF-8 для прототипа данных SerializeToString () - PullRequest
1 голос
/ 09 апреля 2020

Мне нужно отправить некоторые данные protobuf на конечную точку API. Я должен сначала декодировать его перед вызовом API, но декодировать не удается, когда версия int содержит более 1 числа. Это работает:

appinfo = app.InstalledAppInfo()
appinfo.name = str(name)
appinfo.version = 1
data = appinfo.SerializeToString().decode("utf-8")

Но когда я пытаюсь с большим числом, это терпит неудачу:

appinfo = app.InstalledAppInfo()
appinfo.name = str(name)
appinfo.version = 1342424242
data = appinfo.SerializeToString().decode("utf-8")

Это именно та ошибка, которую я получаю:

'utf-8' codec can't decode byte 0x84 in position 25: invalid start byte

Что я могу делать не так?

1 Ответ

1 голос
/ 09 апреля 2020

Данные Protobuf не являются utf-8; вы не можете «декодировать» его как utf-8, , потому что это не .

Если вам нужно отправить его по транспорту, который поддерживает только текст: base-64 - это ваш лучшая ставка Но если вы можете отправить его как двоичный файл, это будет более эффективным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...