Powershell: заменить на кириллицу

Powershell
Вопрос: Я не могу заменить успешно кириллицу. Мой файл кодируется UTF-8 с помощью спецификации / Код сценария powershell: $Title = "название видео" $Title = $Title.Replace("название", "") Write-Host $Title cmd /c pause Результат: Лучший ответ: Решение: function ConvertTo-Encoding ([string]$From, [string]$To){ Begin{ $encFrom = [System.Text.Encoding]::GetEncoding($from) $encTo = [System.Text.Encoding]::GetEncoding($to) } Process{ $bytes = $encTo.GetBytes($_) $bytes = [System.Text.Encoding]::Convert($encFrom, $encTo,

Вопрос:

Я не могу заменить успешно кириллицу.

Мой файл кодируется UTF-8 с помощью спецификации /

Код сценария powershell:

$Title = «название видео» $Title = $Title.Replace(«название», «») Write-Host $Title cmd /c pause

Результат:

Resulting string

Лучший ответ:

Решение:

function ConvertTo-Encoding ([string]$From, [string]$To){ Begin{ $encFrom = [System.Text.Encoding]::GetEncoding($from) $encTo = [System.Text.Encoding]::GetEncoding($to) } Process{ $bytes = $encTo.GetBytes($_) $bytes = [System.Text.Encoding]::Convert($encFrom, $encTo, $bytes) $encTo.GetString($bytes) } } [System.Text.Encoding]::Default.Codepage $Title = «название видео» | ConvertTo-Encoding «UTF-8» «windows-1251» Write-Host $Title $Title = $Title.Replace((«название» | ConvertTo-Encoding «UTF-8» «windows-1251»), «») Write-Host $Title cmd /c pause Ответ №1

Я не могу воспроизвести вашу проблему. Тем не менее, позвольте мне предположить, что вывод из [System.Console]::OutputEncoding.Codepage – 1251. Вы можете изменить кодировку консоли на Unicode (UTF-8) (кодовая страница 65001) на лету; попробуйте изменить свой сценарий следующим образом:

### debug ### [System.Console]::OutputEncoding [System.Console]::OutputEncoding = [System.Text.Encoding]::UTF8 ### debug ### [System.Console]::OutputEncoding $Title = «название видео» $Title = $Title.Replace(«название», «») Write-Host $Title pause

Или измените консольную кодировку на Unicode (кодовая страница 1200), используя

[System.Console]::OutputEncoding = [System.Text.Encoding]::Unicode Ответ №2

Измените шрифт из растра на некоторые шрифты истинного шрифта

Оцените статью
Добавить комментарий