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 >>
