Как найти номер кодовой страницы ОС в. NET Core? - PullRequest
0 голосов
/ 14 апреля 2020

Мне нужно получить Windows кодовую страницу по умолчанию в. NET Базовом приложении. Т.е. 1252 для систем Engli sh, 1251 для систем Cyrilli c, 1253 для греческих и др. c. Ранее в. NET Framework 4 и Mono это было легко сделать через Encoding.Default. После того, как программа перешла на. NET Core 3.1, теперь необходимо вручную установить номер кодовой страницы для каждого P C. Это не легко для некоторых пользователей.

Как вернуть автоопределение устаревшей (системной) кодовой страницы? Невозможно прочитать Windows Реестр, чтобы обнаружить системные настройки, потому что приложение должно также работать на Linux с внешними данными, полученными с Windows ПК (или отправить на него).

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

Возможно, кодовая страница OEM также интересна (для бесшовного взаимодействия с консольным программным обеспечением, которое все еще использует даже кодовую страницу DOS).

1 Ответ

1 голос
/ 14 апреля 2020

Первый - это код. NET Framework, второй - его. NET Эквивалент ядра:

//OutputEncoding = Encoding.Default;
OutputEncoding = CodePagesEncodingProvider.Instance.GetEncoding(System.Globalization.CultureInfo.CurrentCulture.TextInfo.ANSICodePage);

Long, но корректно работает как на Windows, так и на Linux. * Кодировки 1004 *

DOS, EBCDI C и MacOS можно получить аналогичным образом через CurrentCulture.TextInfo.*CodePage.

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