0

我试图在我的一些 XML 节点中输出一些原始字节数据。
我不相信Base64输出适合我的解决方案。

我目前的工作如下:

要保存到文件:

(容器类Foo中的成员函数)

public void save(String file)
{
    XmlWriterSettings settings = new XmlWriterSettings();

    XmlSerializer serializer = new XmlSerializer(typeof(Foo));
    XmlWriter writer = XmlWriter.Create(file, settings);
    serializer.Serialize(writer, this);
}

序列化类(类继承自 IXmlSerializable):

(里面的数据Bytes是原始数据)

public void WriteXml(XmlWriter writer)
{
    char[] temp = new char[Bytes.Length];
    for (int i = 0; i < temp.Length; i++)
    {
        int n = (int)Bytes[i];
        temp[i] = (char)n;
    }
    writer.WriteRaw(temp, 0, temp.Length);
}

我确定在此操作之后,数据中Bytes的数据与 temp 中的数据完全匹配,但是在我序列化类之后,输出文件中的原始数据似乎不匹配,尽管有些部分看起来相似。我也尝试过在 上使用编码设置XmlWriter,但这经常以异常结束。

4

1 回答 1

0

“我不相信 Base64 输出适合我的解决方案。” o_O,嗯……那么这不是一个编程问题,而是一个哲学问题……

尽管如此,假设有很多事情,例如数组Bytes包含文件的字节数据,该文件包含Foo按照您的save()方法的序列化实例,请记住,它char代表一个 Unicode 字符,它的大小是 2 字节......你是转换bytechar...时添加更多位

哦,编码,编码,编码……这就是为什么存在 Base64 的原因!!!

于 2012-11-03T05:19:38.837 回答