Как вывести русский текст в консоли?

У меня возникла следующая проблема: на установленной системе Windows Server 2022 команда quser выводит некорректный текст, например, ╨▒╨╤╨╨╨╕╨░ ╤, в то время как команда Get-ADUser -filter * работает корректно и выводит текст правильно. Кроме того, есть много других команд, которые иногда отображают текст верно, а иногда нет, например, вместо ожидаемого текста выводятся символы ?????. У меня сложилось впечатление, что проблема может заключаться в неправильном формате кодека. Я пробовал установить кодировку в консоли с помощью команды [Console]::OutputEncoding = [System.Text.Encoding]::GetEncoding("utf-8") и менял настройки даты и времени на русский язык, а также выбирал бета-версию UTF-8, но это не помогло. 
  • 28 августа 2024 г. 5:44
Ответы на вопрос 2
Вывод русскоязычного текста в консоли Windows может быть сложной задачей из-за различных настроек кодировки, используемых в командной строке и PowerShell. Вот несколько шагов, которые можно предпринять для устранения проблемы с некорректным отображением текста:

1. **Установка кодировки в PowerShell**:
   В PowerShell попробуйте установить кодировку UTF-8 для вывода:
   ```powershell
   [Console]::OutputEncoding = [System.Text.Encoding]::UTF8
   ```
   Это должно помочь отображать кириллицу корректно.

2. **Использование правильного шрифта**:
   Убедитесь, что в окне консоли Windows (cmd.exe) или PowerShell используется шрифт, поддерживающий кириллицу. Рекомендуется использовать шрифт "Consolas" или "Lucida Console".

3. **Запуск PowerShell и командной строки с параметрами**:
   - Если вы используете стандартную командную строку (`cmd.exe`), попробуйте запустить её с параметром, устанавливающим кодировку:
     ```cmd
     chcp 65001
     ```
   Это переключит кодовую страницу на UTF-8.

4. **Настройки региональных параметров**:
   Убедитесь, что системные региональные параметры установлены на русский языков. Это можно сделать в "Панели управления" → "Часы и регион" → "Регион".

5. **Проблемы с конкретными командами**:
   Некоторые команды, как `quser`, могут быть ограничены в своих возможностях и не поддерживать UTF-8. В таких случаях возможные меры - использовать альтернативные команды или скрипты для получения нужной информации.

6. **Проверка консольного приложения и его возможностей**:
   Возможно, стоит попробовать использовать Windows Terminal, который более современный и поддерживает работу с кодировками лучше, чем стандартные консоли.

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

С quser я не работал, но в psexec помогает смена на кодировку 1251.
chcp 1251
Похожие вопросы