11

次の Powershell スクリプトを実行して、一連の出力ファイルを 1 つの CSV ファイルに連結しています。whidataXX.htm(xxは 2 桁の連続番号) であり、作成されるファイルの数は実行ごとに異なります。

$metadataPath = "\\ServerPath\foo" 

function concatenateMetadata {
    $cFile = $metadataPath + "whiconcat.csv"
    Clear-Content $cFile
    $metadataFiles = gci $metadataPath
    $iterations = $metadataFiles.Count
    for ($i=0;$i -le $iterations-1;$i++) {
        $iFile = "whidata"+$i+".htm"
        $FileExists = (Test-Path $metadataPath$iFile -PathType Leaf)
        if (!($FileExists))
        {
            break
        }
        elseif ($FileExists)
        {
            Write-Host "Adding " $metadataPath$iFile
            Get-Content $metadataPath$iFile | Out-File $cFile -append
            Write-Host "to" $cfile
        }
    }
} 

whidataXX.htmファイルは UTF8 でエンコードされていますが、私の出力ファイルは UTF16 でエンコードされています。ファイルをメモ帳で表示すると正しく表示されますが、16 進エディタで00表示すると各文字の間に 16 進値が表示され、処理のためにファイルを Java プログラムに取り込むと、ファイルは次のようにコンソールに出力されます。間の余分なスペースc h a r a c t e r s

まず、これは PowerShell では正常ですか? または、ソースファイルにこれを引き起こす何かがありますか?

第二に、上記のコードでこのエンコーディングの問題をどのように修正しますか?

4

2 に答える 2