【问题标题】:Powershell: Replace in cyrillic stringPowershell:替换为西里尔字符串
【发布时间】:2016-08-22 19:42:33
【问题描述】:

我无法成功替换西里尔字符串。

我的文件是用 UTF-8 编码的,带有 BOM/

powershell脚本代码:

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

结果:

【问题讨论】:

    标签: powershell powershell-2.0 powershell-3.0 powershell-4.0


    【解决方案1】:

    解决方案:

       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
    

    【讨论】:

    • 蝙蝠需要更改: $Text=($_).ToString();$bytes=$encTo.GetBytes($Text) 因为,单个布尔变量即使它们是字符串 - 也会引发错误.
    【解决方案2】:

    我无法重现您的问题。尽管如此,让我猜测[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
    

    【讨论】:

      【解决方案3】:

      将字体从光栅更改为一些真正的类型字体

      【讨论】:

      • 在consile窗口顶部用右键单击,属性>字体
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-06-19
      • 1970-01-01
      • 2016-11-04
      • 2019-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多