EUC-JPやJISでエンコードされたテキストを開く・保存する

ファイルを開く

 PowerShellでは、Get-Contentコマンドレットを使用することでテキストファイルを読み込むことができますが、このコマンドレットではEUC-JPやJISコードのテキストファイルを読み込むことができません。これらの文字コードの場合でも.NET Frameworkのメソッドを使用すれば開くことができます。

PS U:\Work> # 文字コードを指定する。JISの場合は "iso-2022-jp" と指定。
PS U:\Work> $encoding = [Text.Encoding]::GetEncoding("EUC-JP")
PS U:\Work> [IO.File]::ReadAllLines("U:\Work\EUC-JP.txt",$encoding)
EUCで書かれたテキストファイルです。
PS U:\Work>

 ここで、ファイルの場所を相対パスで指定した場合、PowerShellのカレントディレクトリではなく、.NET Frameworkのカレントディレクトリを探しにいくので注意して下さい。この意味がよく分からない場合でも、フルパスで指定すれば間違いありません。

ファイルを保存する

 テキストファイルを保存も、EUC-JPやJISコードを用いる場合はやはり.NET Frameworkのメソッドを使用します。

PS U:\Work> # 文字コードを指定する。JISの場合は "iso-2022-jp" と指定。
PS U:\Work> $text = "EUC-JPで出力しました。"
PS U:\Work> [IO.File]::WriteAllLines("U:\Work\OutEuc.txt",$text,$encoding)

 ファイルを保存する場合も、相対パスを指定すると.NET Frameworkのカレントディレクトリを基準に保存されるので注意して下さい。

関連

inserted by FC2 system