Usuário com melhor resposta
Windows 10 - 1809 - Проблемы с русскими заглавными буквами в Powershell

Pergunta
-
Описание ошибки
В Windows 10 версии 1809 в Powershell не вводятся русские заглавные символы
Как воспроизвести
- Потребуется Windows 10 1809, в частности Windows 10 x64 Version 1809 (OS Build 17763.253)
- Открыть командную строку Powershell, в Powershell ISE проблема не воспроизводится.
- Пробовать вписать русские заглавные буквы используя Shift.
- Итог не все символы пропечатываются (только некоторые проходят - ЦУШЩХЪФЫСТ).
- А если использовать вместо Shift клавишу Caps Lock то все нормально.
- Ну это ладно бы, можно привыкнуть и 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?
Respostas
-
Попробуйте выгрузить PSReadline и проверить без него.
Update: именно так и есть. Репортить сюда https://github.com/lzybkr/PSReadLine/
Сазонов Илья
https://isazonov.wordpress.com/
- Sugerido como Resposta Igor LeykoModerator sexta-feira, 18 de janeiro de 2019 18:20
- Editado ILYA [ sie ] SazonovModerator sábado, 19 de janeiro de 2019 15:18
- Marcado como Resposta Mahoune Blade segunda-feira, 21 de janeiro de 2019 11:10
-
Проверил, действительно выгрузка модуля 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
- Marcado como Resposta Mahoune Blade segunda-feira, 21 de janeiro de 2019 11:11
- Editado Mahoune Blade segunda-feira, 21 de janeiro de 2019 11:19
-
Мне помог откат на старую версию модуля (1.2)
Вычитал от сюда:
http://forum.oszone.net/post-2882847-7.html
Только после
uninstall-module psreadline
мне пришлось удалять папку c:\Program Files\WindowsPowerShell\Modules\PSReadline\2.0.0\ руками.
- Sugerido como Resposta JackalRus quinta-feira, 8 de agosto de 2019 09:07
- Marcado como Resposta Dmitriy VereshchakMicrosoft contingent staff, Moderator quinta-feira, 8 de agosto de 2019 09:12
Todas as Respostas
-
Как воспроизвести
- Потребуется Windows 10 1809, в частности Windows 10 x64 Version 1809 (OS Build 17763.253)
- Открыть командную строку Powershell, в Powershell ISE проблема не воспроизводится.
- Пробовать вписать русские заглавные буквы используя Shift.
- Итог не все символы пропечатываются (только некоторые проходят - ЦУШЩХЪФЫСТ)
-
-
Здравствуйте,
Смотрю у вас не распознается кирилица?
Могу посоветовать только одно дождаться исправления или же обратится с просьбой ускорить процес на платные каналы мнения клиента :(
Если Вам помог чей-либо ответ, пожалуйста, не забывайте жать на кнопку "Предложить как ответ" или "Проголосовать за полезное сообщение" Мнения, высказанные здесь, являются отражение моих личных взглядов, а не позиции корпорации Microsoft. Вся информация предоставляется "как есть" без каких-либо гарантий.
-
-
-
-
Походу проблема в английской версии винды. Автор, проясните какая версия у вас?
PS: судя по тому как написан номер версии, то именно английская...
- Editado Mikhail Efimov quinta-feira, 17 de janeiro de 2019 13:28
-
-
-
-
Появились результаты дополнительных изысканий.
Проблема наблюдается пока только начиная с Windows 10 - 1809
Проблема существует именно когда при запуске командной строки Powershell была активна английская раскладка клавиатуры.
Если при запуске Powershell активна русская раскладка клавиатуры, то проблемы нет.
Интересно, что если при запуске Powershell влючена русская раскладка, то отключается подсветка синтаксиса.
Скорее всего подсветка синтаксиса и влияет на возможность вводить заглавные русские символы.
Но могу и ошибаться.
-
-
-
-
-
Попробуйте выгрузить PSReadline и проверить без него.
Update: именно так и есть. Репортить сюда https://github.com/lzybkr/PSReadLine/
Сазонов Илья
https://isazonov.wordpress.com/
- Sugerido como Resposta Igor LeykoModerator sexta-feira, 18 de janeiro de 2019 18:20
- Editado ILYA [ sie ] SazonovModerator sábado, 19 de janeiro de 2019 15:18
- Marcado como Resposta Mahoune Blade segunda-feira, 21 de janeiro de 2019 11:10
-
Проверил, действительно выгрузка модуля 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
- Marcado como Resposta Mahoune Blade segunda-feira, 21 de janeiro de 2019 11:11
- Editado Mahoune Blade segunda-feira, 21 de janeiro de 2019 11:19
-
Этот модуль - Open Source Project - открывайте смело кейс в нём (ссылка выше). Тем более что этот модуль последнее время активно дорабатывался под Windows 10 и PowerShell Core 6.0. Там ещё могут быть нюансы в связи с тем, что консоль Windows 10 также активно развивается.
Сазонов Илья
https://isazonov.wordpress.com/ -
-
Спасибо. Подождем, что ответит Джейсон. Тогда будет ясно, что делать дальше.
В марте намечен релиз PowerShell Cor 6.2, и хорошо бы к этому времени получить обновленный релиз PSReadline. Ну и фикс для самой Windows 10.
Напимните мне, если дней 10 не будет новостей.
Сазонов Илья
https://isazonov.wordpress.com/ -
-
На моем компьютере (Windows 10 1903) по умолчанию стоит PSReadline 2.0.0 Beta2 со всеми этими проблемами.
Последняя версия на PSGallery это PSReadline 2.0.0 Beta4 где эти проблемы должны быть исправлены.
Так что требуйте включить эту версию в последующие обновления системы. Ссылка https://github.com/PowerShell/PSReadLine/issues/798
Также используйте Feedback утилиту в самой системе.
Сазонов Илья
https://isazonov.wordpress.com/ -
Аналогичная проблема уже даже на 1903 (18362.2339) - не вводятся через Shift как русские заглавные, так и английские заглавные.
Решение либо пока выгружать саму подсветку
Remove-Module -Name PSReadline
Либо для ввода заглавных букв использовать не Shift, а Caps Lock - тогда и заглавные буквы можно ввести и подсветка сохраняется.
-
Мне помог откат на старую версию модуля (1.2)
Вычитал от сюда:
http://forum.oszone.net/post-2882847-7.html
Только после
uninstall-module psreadline
мне пришлось удалять папку c:\Program Files\WindowsPowerShell\Modules\PSReadline\2.0.0\ руками.
- Sugerido como Resposta JackalRus quinta-feira, 8 de agosto de 2019 09:07
- Marcado como Resposta Dmitriy VereshchakMicrosoft contingent staff, Moderator quinta-feira, 8 de agosto de 2019 09:12