base64 및 UTF-8 인코딩 문제


0

저는 byte []를 반환하는 간단한 웹 메서드를 작성하고 byte []는 UTF-8로 인코딩됩니다. 관련 WSDL 및 SOAP 메시지를 조사한 결과 기본 웹 서비스 스택이 base64 인코딩을 사용하는 것 같습니다.

여러 가지 이유로 UTF-8에서 base64로 반환 바이트 []를 사용하거나 다시 인코딩 할 수 없습니다. UTF-8 인코딩으로 base64 인코딩을 수정하는 방법은 무엇입니까? 여기

는 WSDL에서

웹 서비스 서버 측 코드

 [WebMethod] 
     public byte[] HelloWorld2() 
     { 
      return utf8encodedbytes; 
     } 

SOAP 응답

<?xml version="1.0" encoding="utf-8"?> 
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
    <soap:Body> 
    <HelloWorld2Response xmlns="http://tempuri.org/"> 
     <HelloWorld2Result>base64Binary</HelloWorld2Result> 
    </HelloWorld2Response> 
    </soap:Body> 
</soap:Envelope> 

관련 유형

WSDL 내 관련 웹 방법, SOAP 메시지 및 관련 유형
xsd:base64Binary 

미리 감사드립니다. George

9

당신의 질문은 실제로 많은 의미가 없습니다. 바이트 배열은 UTF-8 같은 텍스트 인코딩으로 인코딩되지 않습니다. 일반적으로 UTF-8 인코딩을 텍스트에 적용하여 바이트 배열을 가져옵니다. XML에서 임의의 바이트 배열을 전송하려면 base64를 사용해야합니다.

텍스트을 전송하려면 먼저 문자열을 반환해야합니다.

어떤 종류의 인코딩이 발생하기 전에 원본 데이터가 무엇입니까? 바이트 배열 인 경우 바이트 배열을 반환해야하며 XML에는 base64 인코딩 데이터가 자동으로 포함되어야합니다. 텍스트 인 경우 문자열을 반환하고 XML에서 인코딩을 처리하도록해야합니다.


1

Convert.ToBase64()Convert.FromBase64()을 사용하면 어떤 일이 발생합니까? 이 함수는 정확하게 다음을 수행합니다. byte 배열을 base64 string으로 변환하고 그 반대로 변환합니다.