【发布时间】:2019-09-27 11:06:02
【问题描述】:
我有一个字符串,当我通过 API 响应取回它时,它基本上看起来像这样:
Ardap Fogger � Zuverl�ssiger Vernebler Zur Ungeziefer- Und Flohbek�mpfung F
在我用 C# 转换后,字符串的最终版本应该如下所示:
Ardap Fogger – Zuverlässiger Vernebler Zur Ungeziefer- Und Flohbekämpfung F
我尝试了几种转换方法,如下所示:
public string ConvertStringToUTF8(string title)
{
byte[] data = Encoding.Default.GetBytes(title);
return Encoding.UTF8.GetString(data);
}
这不起作用。我也试过以下方法:
var title = System.Uri.UnescapeDataString(" Ardap Fogger � Zuverl�ssiger Vernebler Zur Ungeziefer- Und Flohbek�mpfung F");
这两种方法都会产生与输入的字符串相同的字符串。
我怎样才能把这个字符串转换成这个版本:
Ardap Fogger – Zuverlässiger Vernebler Zur Ungeziefer- Und Flohbekämpfung F
谁能帮帮我?
【问题讨论】:
-
有人吗? =)
-
您需要在源代码处更改编码。您的 API 服务器正在以错误的编码写入它,或者您以错误的编码读取它。如果编码错误,您以后无法更正。另外,不要使用
Encoding.Default,因为这只会导致问题,因为它在不同的机器上是不同的。 -
您的内容是如何从浏览器发送到服务器的?您是否在标头中指定内容编码?服务器以字节数组的形式接收请求男孩,并尝试使用错误的编码将它们转换为字符串。编码必须匹配。您无法“重新转换”字符串,因为原始信息已经丢失
标签: c# asp.net asp.net-mvc string utf-8