Skip to content

Commit 82d0784

Browse files
committed
Use client encoding as fallback (restsharp#1693)
1 parent c7eebdf commit 82d0784

File tree

3 files changed

+6
-3
lines changed

3 files changed

+6
-3
lines changed

src/RestSharp/Response/ResponseHandling.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@
1818
namespace RestSharp;
1919

2020
static class ResponseHandling {
21-
public static string GetResponseString(this HttpResponseMessage response, byte[] bytes) {
21+
public static string GetResponseString(this HttpResponseMessage response, byte[] bytes, Encoding clientEncoding) {
2222
var encodingString = response.Content.Headers.ContentType?.CharSet;
23-
var encoding = encodingString != null ? TryGetEncoding(encodingString) : Encoding.Default;
23+
var encoding = encodingString != null ? TryGetEncoding(encodingString) : clientEncoding;
2424
return encoding.GetString(bytes);
2525

2626
Encoding TryGetEncoding(string es) {

src/RestSharp/Response/RestResponse.cs

+3-1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414

1515
using System.Diagnostics;
1616
using System.Net;
17+
using System.Text;
1718
using RestSharp.Extensions;
1819

1920
// ReSharper disable SuggestBaseTypeForParameter
@@ -61,6 +62,7 @@ public class RestResponse : RestResponseBase {
6162
internal static async Task<RestResponse> FromHttpResponse(
6263
HttpResponseMessage httpResponse,
6364
RestRequest request,
65+
Encoding encoding,
6466
CookieCollection cookieCollection,
6567
CancellationToken cancellationToken
6668
) {
@@ -71,7 +73,7 @@ async Task<RestResponse> GetDefaultResponse() {
7173
using var stream = await readTask.ConfigureAwait(false);
7274

7375
var bytes = stream == null ? null : await stream.ReadAsBytes(cancellationToken).ConfigureAwait(false);
74-
var content = bytes == null ? null : httpResponse.GetResponseString(bytes);
76+
var content = bytes == null ? null : httpResponse.GetResponseString(bytes, encoding);
7577

7678
return new RestResponse {
7779
Content = content,

src/RestSharp/RestClient.Async.cs

+1
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ public async Task<RestResponse> ExecuteAsync(RestRequest request, CancellationTo
3131
? await RestResponse.FromHttpResponse(
3232
internalResponse.ResponseMessage!,
3333
request,
34+
Options.Encoding,
3435
CookieContainer.GetCookies(internalResponse.Url),
3536
cancellationToken
3637
)

0 commit comments

Comments
 (0)