【要約】【備忘録】Spring Boot のログが文字化けして、直すのに3か所いじる羽目になった話 [Qiita_Trend] | Summary by TechDistill
> Source: Qiita_Trend
Execute Primary Source
// Problem
Windows 11環境でVS Codeを使用し、Spring Bootアプリを起動した開発者が、ログの日本語が文字化けして読めない問題に直面した。日本語Windowsのデフォルト設定が原因で、以下の3箇所で文字コードの不一致が発生していた。
- ・ターミナル自体の文字コードがShift-JISであること。
- ・PowerShellが外部プロセスからの出力を読み取る際のエンコーディングがShift-JISであること。
- ・Javaプロセス自体の標準出力・標準エラー出力がShift-JISになること。
// Approach
ログが渡される各段階の文字コードをUTF-8に統一するアプローチを採用した。VS Codeの
.vscode/settings.json を用い、以下の3ステップで設定を行った。1.ターミナルプロファイルの定義:
chcp 65001 を実行し、コンソールのコードページをUTF-8に変更する。2.PowerShellの読み取り設定変更:
[Console]::OutputEncoding をUTF-8に固定し、PowerShellの解釈を修正する。3.Javaの出力設定変更: 環境変数
JAVA_TOOL_OPTIONS を用い、標準出力と標準エラー出力をUTF-8に指定する。// Result
VS Codeのターミナル上で、Spring Bootのログが正しく日本語表示されるようになった。これにより、以下の成果が得られた。
- ・開発者がログの内容を正確に把握でき、デバッグ作業の阻害要因が排除された。
- ・設定を
.vscode/settings.jsonに集約し、環境構築の手順を明確化した。 - ・
.gitignoreを活用することで、個人の環境設定をチームのリポジトリに混入させない運用方法を提示した。
Senior Engineer Insight
> 本件は、データパイプラインにおけるエンコーディングの不一致という、極めて古典的かつ重要な問題である。単一のレイヤーを修正しても、後続のプロセスで解釈が異なれば問題は再発する。ソース、ミドルウェア、表示層の全レイヤーで整合性を取る必要がある。実戦においては、こうした環境依存の課題を
.vscode/settings.json 等でコード化し、チーム内で適切に管理する習慣が、開発効率と再現性を担保する鍵となる。