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日改良版が存在します。そちらをお使いください。