web-dev-qa-db-ja.com

Powershell:Get-Content Pipelineのエンコーディングの設定

UCS-2リトルエンディアンとして保存されたファイルがあります。エンコードを変更したいので、次のコードを実行しました。

cat tmp.log -encoding UTF8 > new.log

結果のファイルはUCS-2リトルエンディアンのままです。これは、パイプラインが常にその形式であるためですか?これをUTF8として新しいファイルにパイプする簡単な方法はありますか?

45
jedatu

提案通り こちら

Get-Content tmp.log | Out-File -Encoding UTF8 new.log
54
Lars Truijens

私はこのようにします:

get-content tmp.log -encoding Unicode | set-content new.log -encoding UTF8

私の理解では、-encodingオプションは、ファイルの読み取りまたは書き込みを行うエンコードを選択するということです。

28
driis

エンコーディングを使用してxmlファイルからコンテンツをロードします。

(Get-Content -Encoding UTF8 $ fileName)

7
user572730

XMLファイルを読み込んでいる場合、XMLファイルのエンコードに適応するさらに良い方法を次に示します。

$xml = New-Object -Typename XML
$xml.load('foo.xml')
1
sba