将字符串字节反序列化为BitStream

本文关键字:BitStream 反序列化 字节 字符串 | 更新日期: 2023-09-27 18:09:45

问题如下:我序列化数据并将它们发送给PlayerPrefs

BitStream bitStream = new BitStream(isTypeSafe);
        bitStream.WriteByte(species);
        bitStream.WriteInt32(revision);
PlayerPrefs.SetString(species.ToString(), bitStream.ToString());

然后我尝试反序列化数据:

BitStream bitStream = new BitStream(isTypeSafe);
bitStream.WriteString(PlayerPrefs.GetString(species.ToString()));
species = bitStream.ReadByte();
revision = bitStream.ReadInt32();

但是输出我得到了不正确的数据。我做错了什么?

将字符串字节反序列化为BitStream

这里的基本问题是使用字符串作为二进制数据的存储。这是错误的,因为更改字符串编码可能会破坏您的数据。不幸的是,PlayerPrefs不提供任何保存/加载二进制数据的方法。因此,解决方案是使用文本序列化。

注:这看起来不正确:

bitStream.WriteString(PlayerPrefs.GetString(species.ToString()));