簡體   English   中英

C#-字符串存儲為Base64,但是檢索到的字符串不是有效的base64字符串

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM