将文件转换为ASCII会产生问号

时间:2015-08-14 17:29:14

标签: powershell character-encoding powershell-v2.0

我试图读取文本文件,替换特定行的内容,然后再次输出结果,理想情况下采用相同的格式。问题是输出文件中有问号(?),而不应该有,而且我到目前为止还无法解决问题。

我试过了:

Get-Content c:\test\file.xml -Encoding Ascii | ForEach-Object {
    if ($_ -like "replace") {
        Add-Content -Path "c:\test\output.xml" -Value $_.replace("replace","fixed") -Encoding Ascii
    } else {
        Add-content -Path "c:\test\output.xml -Value = $_ -Encoding Ascii
    }
}

这导致某些重音字符被问号替换。

我也尝试过使用streamreader和streamwriter,结果类似:

$InputFile = @("c:\test\file.xml")
$OutputFile = "C:\test\output.xml"

#                                                 File         , Overwrite?, Encoding
$StreamWriter = New-Object System.IO.StreamWriter("$OutputFile", "True", [System.Text.Encoding]::Default)

foreach ($file in $InputFile) {
    #More info available at http://msdn.microsoft.com/en-us/library/ms143457.aspx
    #                                                 File   , Text Encoding                  , Detect Encoding From Byte Order Marks (BOM)
    $StreamReader = New-Object System.IO.StreamReader("$File", [System.Text.Encoding]::Default, "False")
    while ($line = $StreamReader.readline()) {
        if ($line -like "*replace*") {
            $StreamWriter.Write("$line.replace(`"replace`",`"fixed`")")
        }
    }
    #$Line = $StreamReader.ReadToEnd()
    #$StreamWriter.Write("$Line")
    #$StreamWriter.Flush()
}

$StreamReader.Close()
$StreamReader.Dispose()

$StreamWriter.Close()
$StreamWriter.Dispose()

我不确定在哪里上传我的文件副本,以便我可以将其超链接到这里...任何建议都会非常感激,因为我确信这会有很大的帮助!

0 个答案:

没有答案