System.IO.IOException: параметр неверен. When Console.OutputEncoding = Encoding.GetEncoding ("GB2312"); - PullRequest
0 голосов
/ 29 августа 2018

Код:

// dotnet core version
// install-package System.Text.Encoding.CodePages
EncodingProvider encodingProvider = CodePagesEncodingProvider.Instance;
Encoding.RegisterProvider(encodingProvider);
Console.OutputEncoding = Encoding.GetEncoding("GB2312");

// full dotnet framework version
static void Main(string[] args)
{
    try
    {
        var s = Encoding.GetEncoding(936);
        Console.OutputEncoding = s;
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex);
        Console.WriteLine(ex.Message);
    }
    Console.WriteLine("中文");
    Console.ReadLine();
}

Когда я пытаюсь установить OutputEncoding на консоли, выдается IOException с: Параметр неверен. Это происходит на моем экземпляре AWS EC2 (Windows Server 2016 Datacenter), но он отлично работает на моей локальной машине с Windows 10 pro. Я пробовал и ядро ​​dotnet, и полноценный каркас dotnet.

1 Ответ

0 голосов
/ 29 августа 2018

Спасибо ДмитроМукалову, укажите верное направление. Вот как включить кодовую страницу GB2312 / 936 в экземпляре aws ec2 windows

https://superuser.com/questions/692709/why-sometimes-the-codepage-is-invalid-in-console

В Windows 7 вы можете установить кодовую страницу 932 только в том случае, если для вашей общесистемной системы Windows не-Unicode установлен языковой стандарт на японский (вам не нужно устанавливать дополнительную языковую поддержку, пока вы не хотите получать сообщения на японском языке;)). К сожалению, вам нужно перезагрузить Windows после установки локали. Я предполагаю, что это имеет место с другими кодовыми страницами, которые вы упомянули. После перезагрузки ваш язык по умолчанию будет 932, и у вас также будет разделитель каталогов японского языка

Как просмотреть и изменить языковые настройки системы, чтобы использовать мой язык по выбору

  • Нажмите Пуск, затем Панель управления
  • Нажмите Часы, язык и регион
  • Windows 10, Windows 8: щелкните Регион
  • Перейдите на вкладку «Администрирование»
  • В разделе «Язык для программ, не поддерживающих Юникод», нажмите «Изменить язык системы» и выберите нужный язык.
  • Перезагрузите компьютер, чтобы применить изменения.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...