Декодирование из Base64 в C # - PullRequest
       8

Декодирование из Base64 в C #

6 голосов
/ 10 сентября 2011

Я создал 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, чтобы избежать проблем?Или как я должен кодировать в Base 64, чтобы решить эту проблему?Я использую кодировщик base64 для кодирования XML-файла.Я запрашиваю документ.требуется использовать кодировщик base64.Я расшифровал себя, чтобы проверить, где проблема.Декодер - это Java.Они не могут разобрать XML-файл, который я считаю, потому что? <Перед документом. </p>

Ответы [ 2 ]

16 голосов
/ 10 сентября 2011

Это зависит от того, как вы его кодируете, но вы должны использовать UTF-8, так как документ объявлен как таковой.Вот примеры кодирования и декодирования:

См. Ответ Джона Скита здесь: 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));
}
1 голос
/ 10 сентября 2011

Еще один вариант - это может быть спецификация в потоке Utf-8 по умолчанию, созданном новым XmlTextWriter (fullPath, Encoding.UTF8);

Рассмотрите возможность использования второго конструктора для UTF8 - http://msdn.microsoft.com/en-us/library/s064f8w2.aspx, который не вставляет спецификацию в поток.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...