UTF-8をANSIファイルに変換しようとしています。グーグルの知識と助けの少しで、私はUTF-8をANSIに変換する
Get-Content C:\Output2\PA01.094 | Set-Content C:\Output\PA01094 -Encoding Ascii
は、今私は、ファイル名を変更せずに別のフォルダにフォルダ内のすべてのUTF-8のファイルを変換したい単一のファイルに変換するために、1行を見つけました。
UTF-8をANSIファイルに変換しようとしています。グーグルの知識と助けの少しで、私はUTF-8をANSIに変換する
Get-Content C:\Output2\PA01.094 | Set-Content C:\Output\PA01094 -Encoding Ascii
は、今私は、ファイル名を変更せずに別のフォルダにフォルダ内のすべてのUTF-8のファイルを変換したい単一のファイルに変換するために、1行を見つけました。
次のようなコードを使用できます。必要なファイルを指定するために、必要に応じてGet-ChildItemを変更します。をもたらすことができる翻訳することはできませんUTF8または他のUnicodeエンコーディングを扱うことができるすべての文字を扱うことができない
$sourcePath = "C:\source"
$destinationPath = "C:\output"
if (!(Test-Path $destinationPath))
{
New-Item -ItemType Directory -Path $destinationPath
}
Get-ChildItem -Path $sourcePath -File | ForEach-Object {
Write-Host "Converting $_"
$content = Get-Content $_.FullName
Set-content (Join-Path -Path $destinationPath -ChildPath $_) -Encoding Ascii -Value $content
}
ASCIIエンコーディング、文字?出力ファイル。
出力のエンコードをチェックするには、PowerShellを使用できます。
たとえば、 "Hello、World!"というメモ帳で作成されたテキストファイルの場合
次のエンコードは、これらの結果を生成します。 UTF-8の開始には特殊文字がありますが、これはファイルがUTF-8であることを示しています。メモ帳のデフォルトの保存形式ではありません。
PS C:\support> [System.IO.File]::ReadAllBytes("C:\support\helloworld_ansi.txt")
72
101
108
108
111
44
32
87
111
114
108
100
33
PS C:\support> [System.IO.File]::ReadAllBytes("C:\support\helloworld_unicode.txt")
255
254
72
0
101
0
108
0
108
0
111
0
44
0
32
0
87
0
111
0
114
0
108
0
100
0
33
0
PS C:\support> [System.IO.File]::ReadAllBytes("C:\support\helloworld_utf8.txt")
239
187
191
72
101
108
108
111
44
32
87
111
114
108
100
33
PS C:\support>
以下はASCIIとしてエンコード$destFolder
下に$sourceFolder
内のすべてのファイルを読み込み、再作成されます。
$sourceFolder = "c:\temp\src"
$destFolder = "c:\temp\dst"
Get-ChildItem -Path $sourceFolder |
foreach-object {
get-content $_ | Set-content -Path (Join-Path $destFolder $_.Name) -Encoding ASCII
}
N.B.このコードは元のファイルのエンコーディングを検証しません。
これは元のファイルを上書きします。リクエストは別のフォルダにファイルを書き込むことです。 – andyb
ファイルを書きたい場所に、設定内容を変更します。例えば、 –
を追加してください。あなたの最初の答えは、質問のポイントを逃した。私がそれを指摘すると、あなたは私の答えを裂く。ニース。 – andyb