Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Powershell: Replace in cyrillic string

I cannot replace successfully cyrillic string.

My file is encoded by UTF-8 with BOM/

Code of powershell script:

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

Result:

Resulting string

like image 330
Vitalij Avatar asked Jul 25 '26 09:07

Vitalij


1 Answers

Solution:

   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
like image 178
Vitalij Avatar answered Jul 27 '26 11:07

Vitalij



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!