Задать вопрос
akogch
@akogch

PowerShell 5.1. Навсегда изменить стандартное кодирование выхода PowerShell на UTF-8?

Набор действий, в моём случае, самый обычный: создать, скопировать, переместить, изменить стурктуру, добавить-заменить что-либо в тексте, иной раз отослать на хостинг. В целом, кодировка (или даже кодировки, смотря что делаешь и каким способом) по умолчанию кривая. Сам справиться не смог, на одном из буржуйских ресурсов нашёл это:

Шаг 1:
Открытые настройки > времени и языка > языке > административных языковых настройках.
В разделе «Регион» нажмите «Изменить местоположение системы».
Проверьте «Beta: Use Unicode UTF-8 для поддержки по всему миру языков».
Перезагружаем ПК по запросу.

Шаг 2: Добавить конфигурацию UTF-8 в профиль:
# Set output encoding for external commands  
$OutputEncoding = [System.Text.UTF8Encoding]::new()  
 
# Set console display encoding (persistent across sessions)  
[Console]::OutputEncoding = [System.Text.UTF8Encoding]::new()  
 
# Fix Out-File/Set-Content defaults (PowerShell 5.1 uses UTF-16LE by default)  
$PSDefaultParameterValues['Out-File:Encoding'] = 'UTF8'  # UTF-8 with BOM (no "utf8" without BOM in PS5.1)  
$PSDefaultParameterValues['Set-Content:Encoding'] = 'UTF8'  
$PSDefaultParameterValues['Export-Csv:Encoding'] = 'UTF8'  
 
# Force console code page to UTF-8 (avoids OEM code page resets)  
chcp 65001 > $null  # 65001 = UTF-8

Там же предлагают возможность проделать описанное в powershell 7+, но проще, — теже шаги, что с версией 5.1, за исключением шага 1. Но две оболочки в одной системе считаю излишним, хотелось бы обойтись одной, установленной в ОС по умолчанию.

Cделать это пока не сторопился, потому что из-за шага 1 последствия непредсказуемы. Кто сталкивал с подобным, поделитесь пжл опытом.
  • Вопрос задан
  • 90 просмотров
Подписаться 1 Средний 1 комментарий
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Специалист по информационной безопасности
    11 месяцев
    Далее
  • Skillbox
    Системный администратор с нуля
    6 месяцев
    Далее
  • Stepik
    Профессия "Инженер технической поддержки" - ваш старт в IT
    4 недели
    Далее
Пригласить эксперта
Ответы на вопрос 2
opium
@opium
Просто люблю качественно работать
включил эту галку больше года назад, полёт нормальный. ломается только ancient-софт который через ANSI API работает и ожидает cp1251, типа старых банк-клиентов, некоторых кривых инсталляторов. для твоих задач (файлы, текст, хостинг) — вообще без проблем. профиль который нашёл рабочий, только chcp 65001 после галки лишний, система сама ставит 65001.
Ответ написан
Комментировать
master_z
@master_z
Программист
Это заморочка, ps5 умеет читать легко UTF, только нужно BOM поставить в тексте и все твои проблемы сразу решаться.
d37ec67a0ac7f4495c7923c068a5bd49.jpg
98096e916d5927d30561dc29289e0775.jpg
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы