使用UTF8和base64编码将字节数组转换为xml?

时间:2013-12-19 10:09:10

标签: c# .net xml encoding decoding

    [return: System.Xml.Serialization.XmlElementAttribute("return", DataType="base64Binary")]
    public byte[] get(...)

我正在尝试从此Web服务获取xml(utf-8)。我尝试了多种方法来尝试将xml从字节数组中取出:

stream
encoding
decoder
converter

[额外信息] 使用Encoding.UTF8.GetString(bytes)解码字节数组时 我得到一个带有奇怪的符号和符号的字符串,但也有一些文字 从:%PDF-1.4

开始

[溶液] 将字节数组写入pdf文件使其可读。

2 个答案:

答案 0 :(得分:1)

您可以尝试Convert.ToBase64String

答案 1 :(得分:1)

我认为Web服务提供的字节流只是base64编码的数据,表示为整数而不是字符。我相信base64字符是ASCII的子集,所以你需要将字节数组转换为ASCII(即base64表示为字符),然后从base64转换这些字符:

var base64AsAscii = Encoding.ASCII.GetString(bytesFromWebService);
var decodedBytes = Convert.FromBase64String(bytesAsAscii);
var text = Encoding.UTF8.GetString(decodedBytes);