如何读取这个byte []值并将其转换为文本文件?
在DataType =“base64Binary”等文档中对此进行了描述,但我无法将其转换为人类可读的格式...
我试过了:
System.Text.Encoding.ASCII.GetString(gadsContent.Value)
得到了
?\b\0\0\0\0\0\0\0?ZY??Zr~?W5vp??\0?t??6@\b\t???pL\bm\b???8?????/^~????L?/Q@Q??????...
Convert.ToBase64String(gadsContent.Value)
得到了
H4sIAAAAAAAAANVaWZPiWnJ+51cQNRETdnCrtAAC9XT1jDZACAm0guRwTAhtCLSAFrQ4/OCxw3/AL15+hp8c9ttM/y8fUUBR273d99qecEd3FTonM09uJzM/0Z9/W4...
更新
现在我读到这有压缩GZIP ...... 我该如何解压缩和解码?
答案 0 :(得分:1)
如果文件包含base64编码的二进制数组,则需要执行以下步骤:
使用适当的文本编码(ASCII,UTF8等)以文本打开文件。如果需要,可以让.NET尝试检测编码。
将文字读入字符串。
使用Convert.FromBase64String()
将字符串转换为字节数组。
我能想出的最短的例子如下:
string text = System.IO.File.ReadAllText(filePath, Encoding.UTF8);
byte[] byteArray = Convert.FromBase64String(text);
如果您不知道编码,可以省略该参数,并希望.NET能够检测到它:
string text = System.IO.File.ReadAllText(filePath);
byte[] byteArray = Convert.FromBase64String(text);
答案 1 :(得分:0)
您可以使用System.Text.Encoding
类在字符串和字节数组之间进行转换。根据输入字符串/字节数组的编码,使用此类中的相应属性。
以下是 UTF8 编码的示例。
var someString = "Some text input";
//Convert the string to byte array
var byteArray= System.Text.Encoding.UTF8.GetBytes(someString);
//Convert a byte array to string
var stringFromByteArray = System.Text.Encoding.UTF8.GetString(byteArray);
此类中还有许多其他编码选项。根据需要使用
答案 2 :(得分:0)
(这些不是文本字节,这不适用:假设这些是文本字节,你需要一个文本解码器:试试
System.Text.Encoding.ASCII.GetString(x.Value)
)
看到前两个字节是31,139,这应该意味着它是GZip字节。
Stack Overflow有一篇关于解码Gzip的文章:
此时我无法判断它是否是.tar.gz文件(首先是tar,然后是gzipped)。你必须解开它才能看到你得到的东西然后我们可以看看它。