powershell

Powershellコンソールの文字化け対策

Springでの開発で、ローカル環境(Powershell7のコンソール)で動作確認をする際、ロギングライブラリ(SLF4J + SimpleLogger や Logback など)を使っていると文字化けをします。PowerShell 7自体は内部的にUTF-8をフルサポートしていますが、Windows上で動作する際、標準出力(stdout)を表示する「窓(コンソール・ホスト)」の部分が、 Shift_JIS (MS932)になっているため文字化けします。対策として一時的に標準出力の文字コードをutf-8に変更します。

確認コマンド
[Console]::OutputEncoding
hikaricp-sample >> [Console]::OutputEncoding

EncodingName      : Japanese (Shift-JIS)
WebName           : shift_jis
HeaderName        : iso-2022-jp
BodyName          : iso-2022-jp
Preamble          :
WindowsCodePage   :
IsBrowserDisplay  :
IsBrowserSave     :
IsMailNewsDisplay :
IsMailNewsSave    :
IsSingleByte      : False
EncoderFallback   : System.Text.InternalEncoderBestFitFallback
DecoderFallback   : System.Text.InternalDecoderBestFitFallback
IsReadOnly        : False
CodePage          : 932

hikaricp-sample >>
UTF-8への変更コマンド
[Console]::OutputEncoding = [System.Text.Encoding]::GetEncoding("UTF-8")
jdbc-template >> [Console]::OutputEncoding

Preamble          :
BodyName          : utf-8
EncodingName      : Unicode (UTF-8)
HeaderName        : utf-8
WebName           : utf-8
WindowsCodePage   : 1200
IsBrowserDisplay  : True
IsBrowserSave     : True
IsMailNewsDisplay : True
IsMailNewsSave    : True
IsSingleByte      : False
EncoderFallback   : System.Text.EncoderReplacementFallback
DecoderFallback   : System.Text.DecoderReplacementFallback
IsReadOnly        : False
CodePage          : 65001

jdbc-template >>
スポンサーリンク
タイトルとURLをコピーしました