Как читать символы кириллицы из файла .txt с помощью C # - PullRequest
2 голосов
/ 19 октября 2011

Я видел похожие темы, но не смог найти решение.Моя проблема в том, что у меня есть файл .txt, в котором символы на болгарском языке / который является кириллицей /, но после попытки прочитать их, нет успеха.Я попытался прочитать с помощью этого кода:

StreamReader reader = new StreamReader(fileName,Encoding.UTF8);

if (File.Exists(fileName))
{
    while ((line = reader.ReadLine()) != null)
    {
        Console.WriteLine(line);
    }
}

И я также изменил значение кодирования на все возможные, как я пытался с GetEncoding (1251), который я написал для кириллицы.И когда я сохранял файл .txt, я пытался сохранить его с каждой другой кодировкой, которая была там / UNICODE, UTF-8, BigEndianUnicode, ANSI / в каждой комбинации с кодировкой. Я настраивался с помощью кода, но снова безуспешно.1004 *

Любые идеи о том, как правильно читать кириллицу, будут оценены.И вот пример текста для этого: "Ето примерен текст."

Заранее спасибо!:)

Ответы [ 2 ]

5 голосов
/ 19 октября 2011

Ваша проблема в том, что консоль не может отображать символы кириллицы.Попробуйте установить точку останова на Console.WriteLine и проверить переменную line.Очевидно, что вам нужно знать правильную кодировку в первую очередь!: -)

Если вы мне не доверяете, попробуйте следующее: создайте консольную программу, которая сделает это:

string line = "Ето примерен текст"; 
Console.WriteLine(line);
return 0;

установите точку останова на return 0;, посмотрите консоль исмотрите строковую переменную.

Я добавлю, что юникодные консоли должны быть одной из "новых" вещей в .NET 4.5

И вы можете попробовать прочитать эту страницу: c #вывод строки Unicode

2 голосов
/ 19 октября 2011

У вас проблема не с чтением текста, а с его отображением.

Если вы действительно хотите отобразить текст Unicode в окне консоли, вам придется внести несколько изменений. Однако если вы, например, будете отображать текст в приложении WinForms или WPF, у вас не возникнет проблем - они по умолчанию работают с Unicode.

По умолчанию консоль не будет обрабатывать Unicode или использовать шрифт с символами Unicode. Вам необходимо сделать следующее:

  1. Сохраните ваш текстовый файл как UTF8.
  2. Запустить консоль с поддержкой юникода: cmd \u
  3. Измените шрифт на «Lucida Sans Unicode»: меню консоли -> свойства -> шрифт
  4. Изменить кодовую страницу на Юникод: chcp 65001
  5. Запустите ваше приложение.

Ваши персонажи теперь будут отображаться корректно:

enter image description here

...