将特殊的德语字符(变音符)转换为常规UTF-8字符

时间:2019-05-09 15:01:58

标签: c# asp.net asp.net-mvc string utf-8

当我通过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

有人可以帮我吗?

1 个答案:

答案 0 :(得分:1)

首先,您应该知道来源是哪种编码。很有可能是德国MS-DOS。 尝试对页面850进行编码:Encoding.GetEncoding(850)。另外,您的C#代码已经具有编码,可能是UTF。因此,您尝试将UTF转换为UTF。尝试读取文件。

public string ConvertStringToUTF8(string title)
{
    byte[] data = Encoding.Default.GetBytes(title);
    return Encoding.GetEncoding(850).GetString(data);
}