Преобразование специальных немецких символов (умлаутов) в обычные символы UTF-8 - PullRequest
0 голосов
/ 09 мая 2019

У меня есть строка, которая в основном выглядит следующим образом, когда я получаю ее через ответ 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 Ответ

1 голос
/ 09 мая 2019

Сначала вы должны знать, в какой кодировке находится ваш источник.Скорее всего, это немецкий 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);
}
...