#powershell #unicode #utf-8
#powershell #юникод #utf-8
Вопрос:
Когда я использую Write-Host
в своем сценарии PowerShell, результат выглядит следующим образом: ????? ?????.
Это происходит потому, что я ввожу строки на арабском языке с Write-Host
помощью, и кажется, что PowerShell не поддерживает арабский язык…
Как мне напечатать текст, используя Write-Host
, но в юникоде UTF-8
(который поддерживает арабский язык).
Пример: Write-Host "مرحباً بالعالم"
Вывод в этом случае будет: ????? ?????
Какие-либо решения?
Комментарии:
1.
Write-Host
конечно, поддерживает unicode, какую кодировку файла имеет сам ваш скрипт?2. Я предполагаю, что это происходит в Windows Powershell, а не в Core, верно?
3. Он отлично работает в ise. Консоль просто не может его отобразить.
Ответ №1:
Исправлено
Вам нужно установить шрифт, который поддерживает эти символы. Как Cascadia Code PL
Примечание: версия, отличная от PL, не работала, поэтому получите версию PL.
Возможно, вам также придется установить кодировку консоли. Если вам действительно не нужна другая кодировка, по умолчанию utf8
это хорошая идея.
$OutputEncoding = [console]::InputEncoding = [console]::OutputEncoding = [System.Text.UTF8Encoding]::new()
Перед
На самом деле мне это не нужно wt
, я бы посоветовал. windowsterminal — это современный термин, который теперь является inbox
приложением. Это означает, что в дальнейшем он будет использоваться по умолчанию в Windows.
utf8
Это не работает с термином, который wt
поддерживает (оба используют cascadia code pl
шрифт