簡體   English   中英

XML 中的 API 響應編碼錯誤,如何更正/轉換字符串?

[英]API response in XML badly encoded, how to correct/convert the string?

我正在使用發送 XML 請求並接收 XML 響應的 HttpClient 查詢某些 API。

var response = await this.httpClient.PostAsync(apiUrl, new StringContent(content, Encoding.UTF8, "application/xml")));
var responseXml = await response.Content.ReadAsStringAsync();

但是responseXml包含

<errorMessage>Je vyžadována autentizace.</errorMessage>

它應該是Je vyžadována autentizace 知道可能導致這種行為的原因以及如何從中獲取正確的字符串嗎?

花了幾個小時,就像我寫這個問題一樣,我想出了解決方案。

必須從ReadAsStringAsync()切換到ReadAsByteArrayAsync()並將其解碼為 UTF8,響應以 ISO-8859-1 編碼。

var responseXml = Encoding.UTF8.GetString(await response.Content.ReadAsByteArrayAsync());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM