Кодировка "œ" с iso-8859-1 в C # - PullRequest
0 голосов
/ 01 февраля 2019

Я использую приведенный ниже код для чтения файла CSV:

using (StreamReader readfile = new StreamReader(FilePath, Encoding.GetEncoding("iso-8859-1")))
{
    // some code will go here
}

В столбце файла CSV есть символ œ.Который конвертируется в ? на выходе.Как я могу получить это - правильно закодировано так, чтобы в выводе я получил то же самое - символ, а не знак вопроса.

1 Ответ

0 голосов
/ 01 февраля 2019

Это проблема кодирования.Многие не-Unicode-кодировки либо являются неполными и переводят много символов в «?», Либо ведут себя слегка по-разному на разных платформах.Подумайте об использовании UTF-8 или UTF-16 по умолчанию.По крайней мере, если вы можете.

"windows-1252" - это расширенный набор "ISO-8859-1".Попробуйте с Encoding.GetEncoding(1252).

Демо:

public static void Main()
{
    System.IO.File.AppendAllText("test","œ", System.Text.Encoding.GetEncoding(1252));
    var content = System.IO.File.ReadAllText("test", System.Text.Encoding.GetEncoding(1252));
    Console.WriteLine(content);
}

Попробуйте онлайн!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...