File.ReadAllText не может прочитать - PullRequest
0 голосов
/ 04 июля 2018

Моя проблема в том, что я хочу проанализировать файл, и он должен был обнаружить специальный символ ( 'Â' ), чтобы сделать некоторые вещи. Мне не удалось обнаружить его, но он работал с обычными символами типа «а». Поэтому я попытался понять, откуда возникла проблема, и создал файл .txt, единственным символом которого является «Â».

string a = File.ReadAllText("C:/example/example/test.txt");
Console.WriteLine(a.Length);`

Консоль печатает 0. Как будто символ не существует. Поэтому я попытался с разными кодировками (File.ReadAllText с utf8, utf16, unicode и т. Д.) И получил тот же результат.

Я действительно не знаю, что делать, заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 04 июля 2018

Вы пытаетесь прочитать символы латинского алфавита, которые являются кодировкой 8859-1. Попробуйте ниже

 Encoding iso = Encoding.GetEncoding("ISO-8859-1");
 string a = File.ReadAllText("C:/example/example/test.txt",iso);
 Console.WriteLine(a.Length);
0 голосов
/ 04 июля 2018

Работает, если установить кодировку по умолчанию:

string result = File.ReadAllText("test.txt", Encoding.Default);

Это даст вам «В».

...