0
我很努力与通常的转换问题,但不幸的是,我一直无法找到任何具体问题。无法转换UTF8编码HttpResponseMessage
我的应用程序正在接收来自php服务器的UTF8编码的System.Net.Http.HttpResponseMessage,其中包含一些像\ 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