内容目录
一, 背景
自己压缩android 截图数据压缩然后网络传递给我node程序,然后发现node 无法解压。
二,排错过程
打印java 压缩的二进制数据数组,打印node收到 buffer,发送java数组函数负数,而node 得到没有负数
三,思考
看到这个2边数据不一样,我就想起来是什么导致。java byte 是 -128~127,node byte是 0~255. 这样子导致数据对不上,我要说一点二进制数据是一样的。这个只是node 读同样的二进制,解析数据0~255范围[byte],java虚拟机解析~128-127。这个就跟我们传送数据,会出现大端和小端问题一样,必须保证2边一致。。。。
四,解决
我直接在NODE 处理每个字节 var c = buffer[i] & 0xff 即可