ITよろづや

ITの参考になる情報を備忘録代わりに残していきます

PowerShellの文字コードをUTF-8からデフォルトANSIにするオプション

PowerShell文字コードをUTF8からデフォルトANSIにするオプション関する情報になります。

 

テキストファイルを置換する作業があったのですが、元のファイルがANSIで何も考えずに置換するとUTF8になったので、元のファイルの文字コードを維持するために、ちょっと調べました。

 

参考になる情報がこちら

文字エンコードについて - PowerShell | Microsoft Docs

 

PowerShellにおいて文字コードは意外と重要で、以前もあるシステムに取り込んだ後、文字化けしているというのが原因が文字コードでした。

 

バージョンが変わってデフォルト値が変わっていたのが原因だったようです。

 

まず説明です。

 

===

Windows PowerShell での文字エンコード
PowerShell 5.1 では、 Encoding パラメーターは次の値をサポートしています。

Ascii Ascii (7 ビット) 文字セットを使用します。
BigEndianUnicode は、ビッグエンディアンのバイト順で UTF-16 を使用します。
BigEndianUTF32 は、ビッグエンディアンのバイト順で 32 UTF-8 を使用します。
Byte 文字のセットをバイトシーケンスにエンコードします。
Default は、システムのアクティブなコードページ (通常は ANSI) に対応するエンコーディングを使用します。
Oem は、システムの現在の OEM コードページに対応するエンコーディングを使用します。
String``Unicode と同じです。
Unicode は、リトルエンディアンのバイト順で UTF-16 を使用します。
Unknown``Unicode と同じです。
UTF32 は、リトルエンディアンのバイト順で 32 UTF-8 を使用します。
UTF7 UTF-7 を使用します。
UTF8 UTF-8 (BOM 付き) を使用します。
一般に、Windows PowerShell では、既定で Unicode utf-8 エンコードが使用されます。 ただし、 のコマンドレットで使用される既定のエンコードWindows PowerShell一貫性が保たれたわけではありません。

===

 

 

Windows PowerShell では、既定で Unicode utf-8 エンコードが使用されるとあります。

 

私もそうですが、ANSIからUTF-8にファイルの文字列置換後に変更されていました。

 

表示上の問題はなかったのですが、元のファイルの文字コードを維持するために、オプションでANSIを指定します。

 

> $PSDefaultParameterValues['*:Encoding'] = 'default'

 

Default は、システムのアクティブなコードページ (通常は ANSI) に対応するエンコーディングを使用します。

 

これでANSIとしてファイルを置換できました。参考までに。

 

Switch 有機elモデル oled ケース 2021 Switch OLED ドック 対応 HEYSTOP ニンテンドースイッチ 有機elモデル ケース スイッチ OLED 4in1 ケース 【Switch 有機elモデル対応】 SWITCH OLED カバー スイッチ ガラスフィルム 親指キャップ 収納バッグ 防塵 防汚 防水 ナイロン素材 全面保護型 大容量 衝撃吸収 持ち運び便利