[英]C# - String stored as Base64, but the retreived string is not a valid base64 string
我正在使用Base64編碼將數據結構中的值存儲到字符串中。 基本上我要做的是將字節數組轉換為base64字符串
string StoredData = Convert.ToBase64String(ByteArray);
然后,我將StoredData分為最大長度為256個字符的字符串,並將它們存儲為ASCII字符串(在AutoCAD XData中為DxfCode.ExtendedDataAsciiString
)。
當我想檢索我的數據時,請執行以下操作:
首先,我使用StoredData = sting1 + string2 + ...
組合每個256個長字符串StoredData = sting1 + string2 + ...
然后使用以下方法將StoredData轉換回ByteArray
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版。
編輯:事實證明,客戶端已向我發送了一份恢復的文檔,該文檔沒有正確恢復文本字符串,這說明了損壞的字符串。
事實證明,應用程序已崩潰,客戶端已使用損壞的字符串恢復了工程圖文檔。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.