PowerShell Memo

このサイトはPowerShell(MSH/Monad)奮闘記です

管理人「newpops吉岡洋」が
「PowerShell(旧名:MSH/Monad)」の研究結果を日々綴っていきます。

【お知らせ】
この日記からPowerShellのTipsを抽出し「PowerShell FAQ」として整理しました。


2006-11-20

[]Export-CSV文字化けする理由

- srgia.blog - [映画]タッチPowerShell文字化けについて書かれています。

NG:文字化けする

Get-Service | Export-Csv c:\service.csv

OK:文字化けしない

Get-Service | Export-Csv c:\service.csv -encoding Default

私の環境でも同様の結果になりました。

Export-Csvコマンドレットと-encodingオプション

「encoding」オプションデフォルト値はASCII

Export-Csvコマンドレットのencodingオプションデフォルト値はASCIIです。

そのため「encoding」オプションを指定しない場合は、ASCIIエンコードされるため全角文字は化けてしまいます。


ASCIIの詳細は以下を実行すると分かります。

[System.Text.Encoding]::ASCII

Defaultとは?

Defaultはシステムのデフォルトエンコーディングです。

デフォルトエンコーディングは以下を実行すると確認できます。

[System.Text.Encoding]::Default


以下は、私の環境での実行結果です。

PS C:\> [System.Text.Encoding]::Default

BodyName          : iso-2022-jp
EncodingName      : 日本語 (シフト JIS)
HeaderName        : iso-2022-jp
WebName           : shift_jis
WindowsCodePage   : 932
IsBrowserDisplay  : True
IsBrowserSave     : True
IsMailNewsDisplay : True
IsMailNewsSave    : True
IsSingleByte      : False
EncoderFallback   : System.Text.InternalEncoderBestFitFallback
DecoderFallback   : System.Text.InternalDecoderBestFitFallback
IsReadOnly        : True
CodePage          : 932

つまり、以下を実行するとシフトJISエンコーディングされることになります。

ですから全角文字も化けません。

Get-Service | Export-Csv c:\service.csv -encoding Default

参考

はてなユーザーのみコメントできます。はてなへログインもしくは新規登録をおこなってください。