簡體   English   中英

將文件的字符串rappresentation(字節數組)轉換回C#中的文件

[英]Converting a string rappresentation of a file (byte array) back to a file in C#

正如在標題中我試圖將字符串的字符串rappresentation轉換回原始文件所在的字節。

我做了什么:

我有一個Web服務,它獲取整個文件並發送它:

answer.FileByte = File.ReadAllBytes(@"C:\QRY.txt");

在傳輸結果xml中進行序列化后,我就是這一行:

<a:FileByte>TVNIfGF8MjAxMzAxMDF8YQ1QSUR8YXxhfGF8YXxhfGF8YXwyMDEzMDEwMXxhfGF8YXxhfGF8YXxhfGF8YXxhfGF8YXxhDVBWMXxhfGF8YXxhfGF8YXxhfGF8YXxhfDIwMTMwMTAxfDIwMTMwMTAxfDB8MHxhDQo=</a:FileByte>

我試圖在另一個簡單的應用程序中使用此行將其轉換回來:

//filepath is the path of the file created
//bytearray is the string from the xml (copypasted)
File.WriteAllBytes(filepath, Encoding.UTF8.GetBytes(bytearray));

我已經使用UTF8作為enconding,因為xml聲明使用這個charset。 保持數據類型不是一個選項,因為我正在編寫一個簡單的實用程序來檢查文件轉換。

也許我錯過了一些非常基本的東西,但我無法想出一個有效的解決方案。

這當然不是UTF8,序列化器可能將其轉換為Base64。

使用Convert.FromBase64String()來獲取字節

假設bytearray是"TVNIfGF8M..."字符串,請嘗試:

string bytearray = ...;
File.WriteAllBytes(filepath, Convert.FromBase64String(bytearray));  

UTF8是一種將任意文本轉換為字節的方法。
ReadAllText()使用ReadAllText()磁盤上的字節轉換回XML。

您將看到一種機制,可將任意字節轉換為適合XML的文本。 (然后使用UTF8將該文本轉換為不同的字節)。

它可能是Base64; 使用Convert.FromBase64String()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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