Вопрос:
Я не могу заменить успешно кириллицу.
Мой файл кодируется 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, $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
Измените шрифт из растра на некоторые шрифты истинного шрифта