我正在使用Base64编码将数据结构中的值存储到字符串中。 基本上我所做的是将字节数组转换为base64字符串
string StoredData = Convert.ToBase64String(ByteArray);
然后我将StoredData分成最大长度为256个字符的字符串,并将它们存储为ASCII字符串(在AutoCAD XData中作为DxfCode.ExtendedDataAsciiString
)。
当我想要检索我的数据时,我会执行以下操作:
首先,我使用StoredData = sting1 + string2 + ...
组合每个256长字符串
然后我使用
var ByteArray = Convert.FromBase64String(StoredData);
现在这对我和我的客户来说非常有用,直到一个月前,我的一位客户遇到了一些崩溃和错误。 我让他把存储的数据发给我,我惊讶地发现他的数据包含无效的Base64字符(见下面的示例)
tM7x24QLLLALr5ivAx3XFAM7uciYXrCjKXSFd3XOL / KGIc3C + JMO8QjHT / 4C + puYrNLq5r9Is0vpDKyuxw9I6R3f1LuOYSdHS6XgZJEyMvGwSHNRSYJ / a0IoumQftB3XspQRwp4QSd7qcUVsrXw0 + 2RS / sd2vAvUFxEQgwsHaabb01YjchGeyxr1f78A4qy2BL / oHAsRak9UYN0mDzhZgbhpahlgdK3eWd8b2BTM01lWh74pYUrJR + JfQ0tw0Eu㿔
Z / 1JxBMUv2cB6NrFehSuNF9l4dhAaZQ + TcIClZmk / ZC8TJ0rKka / J + HqhLDAwWExB3nXoIi00uJnE7J4R6rU + Q ==
你可以看到前256个长字符串的Base64字符无效(㿔)
为什么会这样?这可能与用户计算机有关吗?我试图复制这个错误没有任何成功,因为我无法访问他们的计算机,我开始认为它可能是他们的一面。
该应用程序使用.Net framework 4.5版。
编辑:结果发现客户端已经发送了一个已恢复的文档,该文档没有正确恢复文本字符串,这解释了损坏的字符串。
答案 0 :(得分:0)
事实证明应用程序崩溃了,客户端已经使用损坏的字符串恢复了绘图文档。