47

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

cat tmp.log -encoding UTF8 > new.log

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

4

5 に答える 5

57

ここで提案されているように:

Get-Content tmp.log | Out-File -Encoding UTF8 new.log
于 2008-09-16T20:41:58.397 に答える
34

私はこのようにします:

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

私の理解では、-encodingオプションは、ファイルの読み取りまたは書き込みが必要なencdoingを選択します。

于 2008-09-16T20:36:07.133 に答える
8

エンコードを使用して xml ファイルからコンテンツを読み込みます。

(Get-Content -Encoding UTF8 $fileName)

于 2014-06-05T10:33:39.197 に答える
0

PowerShell の get-content/set-content エンコーディング フラグは、すべてのエンコーディング タイプを処理するわけではありません。たとえば、Windows-1252 を使用してファイルをロードするには、IO.File を使用する必要がある場合があります。

$myString = [IO.File]::ReadAllText($filePath, [Text.Encoding]::GetEncoding(1252))

Text.Encoding::GetEncoding Text.Encoding::GetEncodings

于 2021-05-24T20:20:11.367 に答える