月別アーカイブ: 2012年1月

テキストエンコーディングの変換

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

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


テキストエンコーディングの自動解析(2)

前回(テキストエンコーディングの自動解析)ご紹介したスクリプトを改良しました。

変更点は、-LiteralPath に対応したことと、複数のファイル名を扱えるようになったことです。

その他、細かなバグを修正しました。

追記

2012年11月20日、改良版が存在します。そちらをお使いください。