Я борюсь с обычной проблемой конверсии, но, к сожалению, я не смог найти что-либо для своей конкретной проблемы.Невозможно преобразовать HttpResponseMessage с кодировкой UTF8
Мое приложение получает System.Net.Http.HttpResponseMessage, с php-сервера, кодированного UTF8, содержащего некоторые символы, такие как \ u00c3 \ u00a0 (à), и я не могу их преобразовать.
string message = await result.Content.ReadAsStringAsync();
byte[] messageBytes = Encoding.UTF8.GetBytes(message);
string newmessage = Encoding.UTF8.GetString(messageBytes, 0, messageBytes.Length);
Это просто один из моих попытки, но ничего не происходит, строка resultring еще имеет \ u00c3 символы \ u00a0.
Я также прочитал некоторые ответы, такие как How to convert a UTF-8 string into Unicode?, но это решение не работает для меня. Это код решение:
public static string DecodeFromUtf8(this string utf8String)
{
// copy the string as UTF-8 bytes.
byte[] utf8Bytes = new byte[utf8String.Length];
for (int i=0;i<utf8String.Length;++i) {
//Debug.Assert(0 <= utf8String[i] && utf8String[i] <= 255, "the char must be in byte's range");
utf8Bytes[i] = (byte)utf8String[i];
}
return Encoding.UTF8.GetString(utf8Bytes,0,utf8Bytes.Length);
}
DecodeFromUtf8("d\u00C3\u00A9j\u00C3\u00A0"); // déjà
Я заметил, что, когда я пытаюсь выше решение с простой строкой как
string str = "Comunit\u00c3\u00a0"
метод DecodeFromUtf8 прекрасно работает, проблема в том, когда я использую мой ответное сообщение.
Любые советы будут очень полезны
Почему вы связываете исходное сообщение из переменной «сообщение», не используя «newmessage»? – Janak
, если вы имеете в виду строку отладки, которую я удалил, это опечатка – Aenima