【问题标题】:Decoding from Base64 in C#在 C# 中从 Base64 解码
【发布时间】:2011-11-14 03:38:21
【问题描述】:

我创建了 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 编码器对该文档进行了编码

解码器无法解析 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 文件以避免这些问题? 或者我必须如何编码到 Base 64 才能解决问题? 我正在使用 base64 编码器对 xml 文件进行编码。 我要文件。需要使用base64编码器。 我自己解码以检查问题出在哪里。 解码器是 Java 。他们无法解析 xml 文件我相信是因为 ?

【问题讨论】:

  • 您尚未向我们展示您使用 Base64 编码器所做的工作。这是相关的代码...
  • 这和base-64有什么关系?另外-我猜您是从IDE中复制了该字符串吗?这不是实际的字符串 - 它是 c# 转义版本。
  • 关于您的问题,我无法理解。你用什么来base64编码/解码你的文件?
  • 既然我已经匆忙给出了关于从 Base64 解码的答案,我会问一个问题——你想用这个做什么?目标是什么?
  • 大家好。我正在尝试访问 cmets。我正在对 xml 文件进行编码并将此编码文件作为请求发送。解码器无法解析文件。他们在解析我的请求时一直出错。你到底想要什么知道代码吗?谢谢

标签: c# xml encoding base64


【解决方案1】:

这取决于您如何对其进行编码,但您应该使用 UTF-8,因为文档是这样声明的。下面是编码和解码的例子:

在此处查看 Jon Skeet 的答案:
C# base64 encoding/decoding with serialization of objects issue

编码:

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

解码:

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

【讨论】:

  • 您为什么要在混音中引入压缩?大部分代码都与压缩有关...
  • 哎呀!我没有注意那部分。这是我一直在摆弄的东西。忘记我在里面做什么了。
  • @Jon Skeet:更好,我想……还没有测试过。不过,这应该可行,对吧?
  • 嗯,这取决于我们如何开始使用 base64 数据。问题是 OP 没有在这方面给我们任何信息......
【解决方案2】:

另一个选项 - 可以是由 new XmlTextWriter(fullPath,Encoding.UTF8) 创建的默认 Utf-8 流中的 BOM;

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-13
    • 1970-01-01
    • 2010-09-15
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    相关资源
    最近更新 更多