none
Windows 10 - 1809 - Проблемы с русскими заглавными буквами в Powershell RRS feed

  • คำถาม

  • Описание ошибки

    В Windows 10 версии 1809 в Powershell не вводятся русские заглавные символы

    Как воспроизвести

    1. Потребуется Windows 10 1809, в частности Windows 10 x64 Version 1809 (OS Build 17763.253)
    2. Открыть командную строку Powershell, в Powershell ISE проблема не воспроизводится.
    3. Пробовать вписать русские заглавные буквы используя Shift.
    4. Итог не все символы пропечатываются (только некоторые проходят - ЦУШЩХЪФЫСТ).
    5. А если использовать вместо Shift клавишу Caps Lock то все нормально.
    6. Ну это ладно бы, можно привыкнуть и Caps Lock использовать. Так еще и Copy/Paste русских букв также иногда отрезает заглавные буквы.

    Что пробовали

    • Пробовали менять шрифт в консоли и перезапускать консоль.
    • Менять кодировку в консоли командой:
      [Console]::OutputEncoding = [System.Text.Encoding]::GetEncoding("utf-8")
    • Менять порядок языков ввода [EN-US] <-> [RU-RU]
    • Изменять настройки консоли Powershell, такие как "Use legacy console", "Filter clipboard contents on paste", "Discard Old Duplicates" и прочие.

    Вопрос

    Как решить данныую проблему, чтобы без проблем можно было в консоли Powershell набирать заглавные русские буквы с использованием Shift?

    17 มกราคม 2562 10:48

คำตอบ

  • Попробуйте выгрузить PSReadline и проверить без него.

    Update: именно так и есть. Репортить сюда https://github.com/lzybkr/PSReadLine/ 


    Сазонов Илья

    https://isazonov.wordpress.com/




    • เสนอเป็นคำตอบโดย Igor LeykoModerator 18 มกราคม 2562 18:20
    • แก้ไขโดย ILYA [ sie ] SazonovModerator 19 มกราคม 2562 15:18
    • ทำเครื่องหมายเป็นคำตอบโดย Mahoune Blade 21 มกราคม 2562 11:10
    18 มกราคม 2562 18:14
    ผู้ดูแล
  • Проверил, действительно выгрузка модуля PSReadline дает результат.

    Оказывается даже заведено обращение в Github разработчика модуля:
    https://github.com/lzybkr/PSReadLine/issues/798


    Можно пдвести итого.

    В общем пока не починили, но понятно как бороться. 
     
    Ошибка связана с модулем PSReadline. Он служит для подсветки синтаксиса: 
    https://docs.microsoft.com/en-us/powershell/module/psreadline/?view=powershell-6 
     
    Достаточно этот модуль выгрузить и проблема исчезает 

    Код:
    Remove-Module -Name PSReadline

     
    Можно добавить выгрузку этого модуля в профиль, например в файл: 
    C:\Windows\System32\WindowsPowerShell\v1.0\profile.ps1 
     
    Даже правильней будет вот так, отдельно для x64 и x86 версии: 
    $PSHOME\profile.ps1 
     
    И модуль будет выгружаться автоматически при каждом запуске. 
     
    Добавить можно вот такой командой, для всех пользователей: 

    Код:
    Add-Content -Value "`r`nRemove-Module -Name PSReadline" -Path $($PSHOME + "\profile.ps1")

     
    Запускать надо и в х64 и в x86 консоли Powershell. 
     
    Если только для текущего пользователя, то изменять надо файл: 
    C:\Users\[User]\Documents\WindowsPowerShell\profile.ps1 



    • ทำเครื่องหมายเป็นคำตอบโดย Mahoune Blade 21 มกราคม 2562 11:11
    • แก้ไขโดย Mahoune Blade 21 มกราคม 2562 11:19
    21 มกราคม 2562 11:10
  • Мне помог откат на старую версию модуля (1.2)

    Вычитал от сюда:

    http://forum.oszone.net/post-2882847-7.html

    Только после

     uninstall-module psreadline

    мне пришлось удалять папку c:\Program Files\WindowsPowerShell\Modules\PSReadline\2.0.0\ руками.

    • เสนอเป็นคำตอบโดย JackalRus 8 สิงหาคม 2562 9:07
    • ทำเครื่องหมายเป็นคำตอบโดย Dmitriy VereshchakMicrosoft, Moderator 8 สิงหาคม 2562 9:12
    8 สิงหาคม 2562 9:05

ตอบทั้งหมด