2014-08-21 3 views
0

У меня возникла проблема с преобразованием строки массива байтов обратно в литерал. Я читаю строку из XML-файла, который был преобразован в массив байтов (Encoding.Unicode.GetBytes(string)). Я доза не развивал экспорт xml. Теперь я хотел бы преобразовать значение обратно в строку.Преобразование строки массива байтов обратно в строку

Например (обратите внимание, что это реальная строка)

«AQwAtADQAMQA5AAwADEAfQAAA ==» обратно «Это строка!»

Я знал, что для кодирования использовался Encoding.Unicode.GetBytes(string). Моя первая идея заключалась в том, чтобы прочитать два значения, вычислить значение байта и преобразовать их обратно в строку юникода. Есть ли лучшее решение? Благодарю.

+0

Я заметил, что "==" отступы. Есть ли вероятность, что это кодировка base64? – TLJ

+0

Я тоже это заметил. Я уже проверил, что с этим вы могли бы предложить. Но доза не работает. Я еще раз проверю это завтра. Благодарю. – hofmeister

ответ

1

Просто выбросьте это там, в случае, если данные вошли в кодировку base64.

byte[] binaryData; 
try { 
     binaryData = 
     System.Convert.FromBase64String(base64String); 
} 
catch (System.ArgumentNullException) { 
     //handling error 
} 

string myString = Encoding.Unicode.GetString(binaryData); 

дайте ему попробовать.

подробнее: http://msdn.microsoft.com/en-us/library/system.convert.frombase64string(v=vs.110).aspx

+0

Я пробовал это уже, но, к сожалению, результат не является исходным. – hofmeister

+0

только другой быстрый мысль. возможно, это utf8 или utf32, а не unicode? – TLJ

+0

Я сделал огромную ошибку ... Я использовал 'Encoding.UTF8.GetString' вместо' Encoding.Unicode.GetString'. Благодаря! – hofmeister

Смежные вопросы