Файл CSV прочитан. Особая проблема с символами

2

Мне нужно отредактировать файл csv, проблема в том, что мои особые символы, такие как ã ç ç, закручиваются.

Heres - это мой код:

static void ReadFromFile(){

        StreamReader SR = new StreamReader("c:\\Users\\Levy\\Documents\\Vale\\Base\\Desknote.csv", Encoding.Default);

        StreamWriter SW = new StreamWriter("c:\\Users\\Levy\\Documents\\Vale\\Base\\Desknote_Ed.csv", true, System.Text.Encoding.GetEncoding("Windows-1252"));

        string S;
        char C='a';
        int i=0;
        S=SR.ReadLine();
        SW.Write(S);

}

ОБНОВЛЕНИЕ:

Хорошо умеет читать символы, используя Encoding.Default для объекта Stramreader. (я могу отображать их на консоли)

Ive пробовал с ISO 8859-1 и CP-1252 на писателе, но мой вывод все еще испорчен.

Спасибо всем

Теги:
csv
character-encoding
streamreader

5 ответов

3

Вы объявили входной файл как ASCII, которого явно нет. Измените его на что-то вроде iso-8859-1 или CP-1252 (Windows Latin-1), и вам может быть повезло...

Это не устраняет фундаментальную проблему: нет эквивалента для ã ç ç в ASCII, так что вы собираетесь с ними делать? Просто выбросить их? Или вы должны убедиться, что используете вместо этого более универсальную кодировку, например UTF-8?

Самое лучшее, что вам нужно сделать, это узнать из вашего источника, что такое кодировка, которая была использована для этого файла, и спросить получателя файла, что приемлемо для вывода. Единственный способ узнать - это СПРОСИТЬ, потому что существуют различные кодировки, похожие на поверхности.

1

Из того, что вы сказали:

  • Вы правильно читаете данные, т.е. вы сделали правильное предположение о кодировании входного файла (не считая, что кодировка - это хорошо). Это связано с тем, что вы заявили, что можете записать строку в консоль, и она соответствует вводу.

  • Данные о выходных файлах некорректны при просмотре.

Но, поскольку вы правильно прочитали данные, и используемая вами кодировка вывода (Windows-1252) фактически поддерживает символы, которые вы указали (есть другие?), а именно: , ã и ç, тогда нет причин, по которым файл не должен быть написан правильно.

Итак, как насчет того, как вы делаете вывод, что выходной файл написан неправильно? Является ли инструмент, который вы используете для просмотра вывода, предполагая определенную кодировку?

1

Здесь есть два места, которые вы можете закручивать,

  • При чтении (которое по своей сути включает следующий шаг)
  • При написании

Проверьте исходный файл кодировка (вы можете попробовать Notepad2, в котором есть строка состояния, которая показывает кодирование) и использовать это при чтении из исходного файла.

После успешного чтения файла напишите с помощью UTF-8, чтобы сохранить эти символы в выходном файле.

0

Я думаю, что ключ действительно является кодировкой. Что такое текстовое кодирование входных данных?

0

Что делать, если вы прочитали весь файл и разделили на\r\n?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню