2014-04-09 2 views
0

base64 문자열이 포함 된 SOAP 응답이 나타납니다. 나는 이것이의 readUTF 기능Windows에서 base64 문자열 디코드 전화

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 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); 
    } 

을 읽을 수있는 요소의 값이 같은 기능을 얻을하여 XDocument를 사용하고

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; 
     } 

하지만, 결과 값은 온라인 디코더가 제공 한 결과와 약간 다릅니다.

내가 여기에 뭔가를 찾을 수 있습니까?

+3

당신의 base64로 문자열 인에서 this is a dummy encoded base64 string을 얻기 위해 무엇입니까? 어떻게 해독합니까? XDocument는 어떻게 사용합니까? BinaryReader의 사용법은 무엇입니까? –

+0

UTF8 인코딩과 base64 인코딩을 관련시키는 방법은 무엇입니까? –

+0

L.B 내 질문을 업데이트했습니다. 햄릿 하코 비앙, 너 무슨 뜻인지 설명해 줄 수있어? – Billatron

답변

3

난 당신이 BinaryReader으로 뭘 하려는지 확실하지 오전하지만 여기에 내가 당신의 base64로 데이터

string data64 = "dGhpcyBpcyBhIGR1bW15IGVuY29kZWQgYmFzZTY0IHN0cmluZy4="; 
var buf = Convert.FromBase64String(data64); 
var str = Encoding.UTF8.GetString(buf); 
+0

답장을 보내 주셔서 감사합니다. 이것은 data64가 그 더미처럼 간단하다면 작동하는 것처럼 보입니다.하지만 좀 더 복잡한 것을 넣으려고하면 몇 가지 다른 문자가 반환되고 일부는 ..로 표시됩니다. 왜 이런 일이 발생합니까? – Billatron

+0

@Billatron 원래 base64 문자열을 모른 채 어떻게 대답 할 수 있습니까? –

+0

은 원래 질문을 새 데이터 문자열로 업데이트했습니다. – Billatron

관련 문제