问题:pb结构先转成byte[],再从byte[]转成string,再从string解析的时候就会缺少字段
原因:pb生成的byte可能出现负数,但是java的byte只能是正数,所以java byte再转string出错,因为它把负数转成特殊的字符串,导致其他地方再解析的时候,就会有一些字段解析不出来
解决方案:
- 直接使用byte[],不要再转成string,或者在调jni的时候在C++层转
- 必须要在java层转的话在转string的时候使用base64,让他使用固定的编码方式
Base64.getEncoder().encodeToString(pbBtye),但是可能性能有损耗