我是靠谱客的博主 不安大门,最近开发中收集的这篇文章主要介绍proto unmarshal失败的问题,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

proto编码完成后是[]byte类型,
强转成string后编码进json的string字段,
在json unmarshal后在第一个数字8后面多了几个数字:
239 191 189(即十六进制EF BF BD)
再proto unmarshal解码失败。

原因是json把string类型进行了utf-8编码,不认识的字符会转换:

在众多的utf-8码点值中,除了ascii,你还应该记住「EF BF BD」,因为它是很多编程语言以及库中的备胎,即无效的码点值在编码的时候会默认用这个码点值进行替换,即utf-8中的超级「备胎」(REPLACEMENT CHARACTER)。

最后

以上就是不安大门为你收集整理的proto unmarshal失败的问题的全部内容,希望文章能够帮你解决proto unmarshal失败的问题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(66)

评论列表共有 0 条评论

立即
投稿
返回
顶部