Open1

FormUrlEncodedContentでUTF-8を指定する

しみゆーしみゆー

FormUrlEncodedContentでCharSetを指定する

var request = new HttpRequestMessage(HttpMethod.Post, endpoint)
{
    Content = new FormUrlEncodedContent(formData)
};
request.Content.Headers.ContentType!.CharSet = "UTF-8";

HttpResponseMessage response = await _httpClient.SendAsync(request);

CharSet指定なし

何も指定しない場合は、Content-typeは、application/x-www-form-urlencodedのみ指定されます。

POST HTTP/1.1
Content-Type: application/x-www-form-urlencoded

StringContentの場合

StringContentでは、第2引数にEncodingクラスを渡すことで文字コードを指定できます。

var request = new HttpRequestMessage(HttpMethod.Post, endpoint)
{
    Content = new StringContent(jsonContent, Encoding.UTF8, "application/json")
};

https://learn.microsoft.com/ja-jp/dotnet/api/system.net.http.stringcontent.-ctor?view=net-8.0#system-net-http-stringcontent-ctor(system-string-system-text-encoding)

https://learn.microsoft.com/ja-jp/dotnet/api/system.text.encoding?view=net-8.0