2012/1/3 火曜日

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

Filed under: Powershell — flamework @ 15:21:56

Convert-Encoding.ps1 は、文字列エンコーディングを自動判別して内容を出力したり、特定のエンコードでテキストファイルに書き込むスクリプトです。

-InputEncoding を指定しなかった場合、入力エンコーディングを自動判別します。また、-OutputEncoding を指定しなかった場合、[String] として出力します。

-InputEncoding および -OutputEncoding の指定は、[System.Text.Encoding] オブジェクト、コードページ、エンコーディング名の三種類が使用可能です。また、Out-File などで用いられる「UTF8, Default, Unicode...」などの表記も可能です。詳細は Get-Help Convert-Encoding をご覧ください。

ダウンロード

Powershell 2.0 以上対応

用例

用例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/1/1 日曜日

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

Filed under: Powershell — flamework @ 14:26:08

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

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

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

ダウンロード


次ページへ »

Copyright © flamework.net 2008.