Кодировка символов в .NET - PullRequest
0 голосов
/ 25 февраля 2012

Я экспортировал документ Excel 2007 в формате CSV (через точку с запятой).Я использую CZECH Office 2010 и чешские Windows 7.

Когда я читаю файл в .net C #, текст со специальными чешскими символами поврежден.Это когда я использую

что-то вроде string [] lines = file.readalllines (path);(из System.IO.File)

Итак, я думаю, мне нужно специально предоставить правильную кодировку, верно?поэтому я попытался:

string[] lines = File.ReadAllLines(path,encoding);

переменная кодирования была определена как

Encoding encoding = Encoding.UTF8 for example.

Ни один из параметров не работал.И что самое странное, некоторые из них, например Encoding.Unicode, даже бросили

IndexOutOfRandgeException

.

Как мне решить эту проблему с кодировкой?Спасибо.

Кстати, моему офису удается правильно открыть и прочитать этот документ.

Ответы [ 2 ]

7 голосов
/ 25 февраля 2012

Скорее всего, кодировка Excel записывает ваш файл - это кодировка по умолчанию вашей системы, которая должна быть windows-1250. Либо откройте свой файл с помощью Encoding.Default или Encoding.GetEncoding("windows-1250"). Это работает для нас здесь, в Польше. Я не помню никаких проблем, связанных с экспортом csvs из офиса.

1 голос
/ 25 февраля 2012

Кажется, я помню, что пару лет назад это произошло, когда CSV экспортировался из офиса Excel

Поиск в Интернете, кажется, что офис будет использовать разные кодировки в зависимости от вашей версии офиса и вашего региона.

В моем случае я считаю, что правильная кодировка была чем-то странным, например, UTF7 (wtf), поэтому попробуйте это. В противном случае вы можете застрять в каждой кодировке, пока она не декодируется должным образом

Другим вариантом является поиск инструментов, предназначенных для обнаружения кодировки файла, и запуск его по вводу для определения кодировки

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