Как определить, является ли файл CSV Unicode или нет - PullRequest
1 голос
/ 14 октября 2011

Я использую C #, у меня есть CSV-файл с разделителями-запятыми с различными строками на разных языках. Мое приложение должно открывать CSV, только если оно в кодировке Unicode.

Есть ли простой способ определить это в коде?

Ответы [ 2 ]

6 голосов
/ 14 октября 2011

Когда вы говорите «Unicode», я предполагаю, что вы имеете в виду UTF-8.Unicode не является кодировкой, и файл не может быть «Unicode».

Вы можете использовать библиотеку, например, ude - это библиотека C #, которая пытается определить, какая кодировка файлаиспользует.Он использует алгоритм , описанный здесь .Это не на 100% надежно.

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

Спецификация CSV не предоставляет способ предоставления метаданных, описывающих формат кодирования.Сама спецификация использует ASCII-кодировку для разделителей.Но токены данных между разделителями могут быть любыми.

Вы должны будете прочитать сами данные и определить тип кодирования, основанный на этом.

Если вы контролируете выход и вводВы можете изменить формат для своих нужд, добавив свои собственные метаданные, но тогда он не будет соответствовать формату файла CSV, если это имеет значение в вашем случае.

Так что нет, нет«простой» способ определения кодировки.

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