在c#中从Base64解码

本文关键字:解码 Base64 中从 | 更新日期: 2023-09-27 18:08:23

我创建了XML文档并保存为

  XmlDocument xmlDoc = new XmlDocument();
  XmlDeclaration dec = xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", null);
  xmlDoc.AppendChild(dec);
  XmlTextWriter writer = new XmlTextWriter(fullPath,Encoding.UTF8);
  writer.Formatting = Formatting.Indented;
  xMLDoc.Save(writer);
  writer.Flush();

然后我用Base64 Encoder

对这个文档进行编码

解码器无法解析XML文件。我自己创建了解码器,得到了这个结果

 ?<?xml version='"1.0'" encoding='"utf-8'"?>'r'n<ClinicalDocument 
 xmlns='"urn:hl7-org:v3'" xmlns:xsi='"http://www.w3.org/2001/XMLSchema-instance'"
classCode='"DOCCLIN'" moodCode='"EVN'" schemaLocation='"urn:hl7-org:v3
CDA.xsd'">'r'n  <typeId extension='"POCD_HD000040'" root='"2.16.840.1.113883.1.3
'" />'r'n

请帮我解决这个问题。如何保存XML文件以避免这些问题?或者我必须如何编码到base64来解决这个问题?我使用base64编码器来编码xml文件。我要文件。要求使用base64编码器。我破译了自己的密码,看看问题出在哪里。解码器是Java。他们不能解析xml文件,我相信是因为?<</p>

在c#中从Base64解码

这取决于您如何编码它,但是您应该使用UTF-8,因为文档是这样声明的。以下是编码和解码的示例:

请看Jon Skeet的回答:
c# base64编码/解码与对象序列化问题

编码:

public string EncodeStringToBase64(string stringToEncode)
{
    return Convert.ToBase64String(Encoding.UTF8.GetBytes(stringToEncode));
}

解码:

public string DecodeStringFromBase64(string stringToDecode)
{       
    return Encoding.UTF8.GetString(Convert.FromBase64String(stringToDecode));
}

另一个选项-可以在新的xmltextwwriter (fullPath,Encoding.UTF8)创建的默认Utf-8流BOM;

考虑使用UTF8的第二个构造函数- http://msdn.microsoft.com/en-us/library/s064f8w2.aspx,它不向流中插入BOM。