Convert-Encoding.ps1 は、文字列エンコーディングを自動判別して内容を出力したり、特定のエンコードでテキストファイルに書き込むスクリプトです。
-InputEncoding を指定しなかった場合、入力エンコーディングを自動判別します。また、-OutputEncoding を指定しなかった場合、[String] として出力します。
-InputEncoding および -OutputEncoding の指定は、[System.Text.Encoding] オブジェクト、コードページ、エンコーディング名の三種類が使用可能です。また、Out-File などで用いられる「UTF8, Default, Unicode…」などの表記も可能です。詳細は Get-Help Convert-Encoding をご覧ください。
用例
用例1: 文字列を EUC-JP で .euc.txt に書き込み、その内容を表示します。
PS> Convert-Encoding -InputString サンプルテキスト euc-jp .euc.txt
PS> Resolve-Encoding .euc.txt
PS> Resolve-Encoding .euc.txt
| BodyName | : | euc-jp |
| EncodingName | : | 日本語 (EUC) |
| HeaderName | : | euc-jp |
| WebName | : | euc-jp |
| WindowsCodePage | : | 932 |
| IsBrowserDisplay | : | True |
| IsBrowserSave | : | True |
| IsMailNewsDisplay | : | True |
| IsMailNewsSave | : | True |
| IsSingleByte | : | False |
| EncoderFallback | : | System.Text.InternalEncoderBestFitFallback |
| DecoderFallback | : | System.Text.InternalDecoderBestFitFallback |
| IsReadOnly | : | True |
| CodePage | : | 51932 |
PS> Get-Content .euc.txt
・オ・ラ・・ニ・ュ・ケ・ネ
PS> Convert-Encoding .euc.txt -InputEncoding euc-jp
サンプルテキスト
用例2: .euc.txt のエンコードを自動判別して内容を表示します。(Resolve-Encoding.ps1 が必要)
PS> Convert-Encoding .euc.txt
サンプルテキスト
サンプルテキスト
追記
2012年11月20日改良版が存在します。そちらをお使いください。