我得到一個Soap響應,其中包含一個base64字符串。我使用的XDocument得到元素的值和這樣的功能來讀取它解碼從Windows Phone的base64字符串
public void main()
{
//****UPDATE
string data64 = "";
data64 = removeNewLinesFromString(data64);
content = data64.ToCharArray();
byte[] binaryData = Convert.FromBase64CharArray(content, 0, content.Length);
Stream stream = new MemoryStream(binaryData);
BinaryReader reader = new BinaryReader(stream,Encoding.UTF8);
string object64 = SoapSerializable.ReadUTF(reader);
}
這是的readUTF功能
public static String ReadUTF(BinaryReader reader)
{
// read the following string's length in bytes
int length = Helpers.FlipInt32(reader.ReadInt32());
// read the string's data bytes
byte[] utfString = reader.ReadBytes(length);
// get the string by interpreting the read data as UTF-8
return System.Text.Encoding.UTF8.GetString(utfString, 0, utfString.Length);
}
和我FlipInt32功能
public static Int32 FlipInt32(Int32 value)
{
Int32 a = (value >> 24) & 0xFF;
Int32 b = (value >> 16) & 0xFF;
Int32 c = (value >> 8) & 0xFF;
Int32 d = (value >> 0) & 0xFF;
return (((((d << 8) | c) << 8) | b) << 8) | a;
}
但結果值與在線解碼器的結果略有不同。
我錯過了這裏的東西?
哪裏是你的base64字符串
this is a dummy encoded base64 string
?你如何解碼它?你如何使用XDocument? BinaryReader的用途是什麼? –如何將base64編碼與UTF8編碼聯繫起來? –
L.B我更新了我的問題。哈姆雷特Hakobyan你能解釋一下你的意思嗎? – Billatron