ファイルをUCS-2リトルエンディアンとして保存しました。エンコーディングを変更したいので、次のコードを実行しました。
cat tmp.log -encoding UTF8 > new.log
結果のファイルはまだUCS-2リトルエンディアンにあります。これは、パイプラインが常にその形式であるためですか?これをUTF8として新しいファイルにパイプする簡単な方法はありますか?
ファイルをUCS-2リトルエンディアンとして保存しました。エンコーディングを変更したいので、次のコードを実行しました。
cat tmp.log -encoding UTF8 > new.log
結果のファイルはまだUCS-2リトルエンディアンにあります。これは、パイプラインが常にその形式であるためですか?これをUTF8として新しいファイルにパイプする簡単な方法はありますか?
ここで提案されているように:
Get-Content tmp.log | Out-File -Encoding UTF8 new.log
私はこのようにします:
get-content tmp.log -encoding Unicode | set-content new.log -encoding UTF8
私の理解では、-encodingオプションは、ファイルの読み取りまたは書き込みが必要なencdoingを選択します。
エンコードを使用して xml ファイルからコンテンツを読み込みます。
(Get-Content -Encoding UTF8 $fileName)
PowerShell の get-content/set-content エンコーディング フラグは、すべてのエンコーディング タイプを処理するわけではありません。たとえば、Windows-1252 を使用してファイルをロードするには、IO.File を使用する必要がある場合があります。
$myString = [IO.File]::ReadAllText($filePath, [Text.Encoding]::GetEncoding(1252))