次の 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 では正常ですか? または、ソースファイルにこれを引き起こす何かがありますか?
第二に、上記のコードでこのエンコーディングの問題をどのように修正しますか?