在PowerShell中将带有“?”或重音符号的文件串联在一起时的稀有字符

时间:2018-06-21 05:18:22

标签: powershell

我有一个脚本,该脚本可以连接当前目录中的所有txt文件,但是当其中一个文件中有西班牙语字符(“?”,重音符号)时,输出将显示稀有字符。 我尝试了几种选择,但没有一个起作用。

在我的机器上,我具有此配置

[System.Text.Encoding]::Default.EncodingName
Europeo occidental (Windows)

这是我的代码:

Write-Host "Pagina Codigos" -ForegroundColor 'yellow'
[System.Text.Encoding]::Default.EncodingName

$PSDefaultParameterValues['Out-File:Encoding'] = 'utf8'

$dir_A_Concatenar = $args[0]
$dir_A_Concatenar = ".\*.txt"

$ficResultado = Split-Path (Split-Path $dir_A_Concatenar -Parent) -Leaf

foreach ($item in Get-ChildItem $dir_A_Concatenar) {
    " " >> ".\$ficResultado.sal"        
    $s="------------------- INICIO : $item --------------------------------------------------------"
    $s >> ".\$ficResultado.sal"

    " " >> ".\$ficResultado.sal"

    Write-Host "Start Processing $item" -ForegroundColor 'green'

    cat $item | Select-Object -Skip 0 | Out-File -Append .\$ficResultado.sal              
    (Get-Content $item) | Set-Content -Encoding UTF8 -Path ".\gc_sc_encodeutf8.sal"        

    Get-Content $item | Add-Content ".\gc_ac.sal"
    Get-Content $item | Out-File ".\gc_ofenc_utf8.sal" -Encoding UTF8 -Append

    cat $item | sc -Encoding UTF8 .\CATsc_encodeUTF8.sal

    Write-Host $item

    " " >> ".\$ficResultado.sal"
    $s="------------------- FINAL : $item --------------------------------------------------------"
    $s >> ".\$ficResultado.sal"
    " " >> ".\$ficResultado.sal"

    Write-Host "Ended Processing $item" -ForegroundColor 'white'
}

如您所见,我尝试了多种连接方法,但是它们都给我相同的结果。

1 个答案:

答案 0 :(得分:0)

导入数据时使用编码Default

Get-Content $item -Encoding Default | ...