RestSharp 버전 105.1.0 (.NET 4.5.1)을 사용하여 자체 API에 대한 REST 호출을하고 있습니다. 이 API는 특히 관심있는 다음 머리글 (Content-Type: application/json; Charset=iso-8859-1
)의 응답을 보냅니다. 보시다시피이 응답의 charset은 iso-8859-1로 설정됩니다.RestSharp가 응답 문자셋 인코딩을 무시합니다
RestSharp에서받은 응답은이 인코딩을 사용하여 응답 내용을 디코딩 할 것으로 예상됩니다. 그러나 RestResponse.Content
속성을 보면 일부 문자가 display로 표시됩니다. 내가 아는 한 이것은 잘못된 인코딩이 사용되었음을 의미합니다. 적절한 인코딩을 사용하여 RawBytes
을 수동으로 디코딩하면 올바른 문자열이 표시됩니다.
RestClient
에 iso-8859-1 Encoding
속성을 수동으로 설정해 보았지만 아무런 문제가 없습니다.
RestSharp의 응답이 올바른 인코딩을 사용하여 디코딩되었는지 어떻게 확인할 수 있습니까?
예제 코드 : 사전에
// Setting the Encoding here does not change the result
var client = new RestClient(myApiUri) { Encoding = Encoding.GetEncoding("iso-8859-1") };
var request = new RestRequest(Method.GET);
var restResponse = client.Execute(request);
Console.WriteLine(restResponse.Content)
// Outputs content as string with wrong encoding
// some characters display as �
감사합니다! 해결하기
나는 또한이 문제를 가지고
을 원하는가 IRestResponse 객체에서 제공하는 바이트 배열을 얻을 인코딩 변환했다. 나는 응답을 위해 RawBytes를 사용하여 이것을 달성하는보다 깨끗한 방법이 있기를 바랐다. –