🗓️

IntelliJ IDEAでターミナルの日本語メッセージが文字化けちゃったよ...Orzのときにやったこと✨

2 min read

<障害発生日>
2021年6月21日 ~ 7月3日あたり

<ざっくりとした環境情報>
OS:Windows10
IDE:IntelliJ IDEA Community Edition 2021.1.1
言語:Java (jdk-13.0.2)
Frame Work:SpringBoot version 2.5.0
Gradle: version 7.0.1
JIG: version '2021.6.2'
Graphviz: version 2.38
ターミナル:コマンドプロンプト ※今回はここが重要

さてさてみなさまお久しぶりです✨
前回jarファイルのリソースファイルが文字化けしてたのを改善したら、今度はターミナルが文字化けちゃったかがみんです✨

あ、前回『これについてはまた後ほど✨』とか言ってたのに
すっごい日が経ってしまいましたね(;^_^A

まぁ、本業や家の都合などいろいろとございまして。。。Orz

と、それでは気を取り直して前回発生した文字化けエラーの解決策について投稿致します✨

『gradle jigReports』で出力されたHTMLの文字化けを直したら今度はターミナルの日本語が。。。

それでは、日も経ってしまっておりますので、改めて前回発生した文字化け現象をお見せしますね✨

はい、Windowsの環境変数に『JAVA_TOOL_OPTIONS:-Dfile.encoding=UTF-8』を追加したとたんこんなイミフな現象が出たのでした✨

原因:『-Dfile.encoding=UTF-8』を設定してビルドしたclassファイルは、出力メッセージもUTF-8になるっぽい

そもそもエンコーディングってなんなんでしょ(;^_^A
ちょこっと調べてみました。。

https://www.morisawa.co.jp/culture/dictionary/1902

つまるところ、われわれがテキストファイルなどで文字を読むとき、『あ』とか『い』というデザインされた文字画像をディスプレイ上で見るのですが、実際のファイルの中身はそれら文字画像に対応する番号(コード)が詰め込まれているというわけですな(;^_^A

その割り振られている番号の値が、『UTF-8』とか『shift-jis』とか各コード体系で『同じ文字画像を指し示すのに異なる』ので、文字化けを起こすと。

で、今回の問題は、classファイルは『UTF-8』のコード体系に則った『文字番号データ』をターミナルに送ったのですが、肝心のターミナル側は『shift-jis』のコード体系で解釈をして『文字画像』を画面に表示しちゃった!

というわけなんですな。。。

対応策:『Intellij IDEA』の設定画面で、ターミナルが『UTF-8』を表示するように変更をする

はい、以下設定方法をお伝えいたします。

『ファイル』>『設定』>『ツール』>『ターミナル』>『シェルパス』で、
『cmd.exe /K "chcp 65001"』を指定して『適用』


こんな感じです。。。
これだけだと説明足りないですかね(;^_^A

あ、今回使用したコマンド『chcp』についてはもしよろしければ下記をご覧ください✨

https://www.javadrive.jp/command/display/index5.html

ターミナルで『gradle jigReports』をしました!
化けてない♪

はい!今日はこれだけです~✨

おまけ)『gradle jigReports』が生成したHTMLファイルの確認✨

は~い、やっぱりここまで確認しときましょう✨
くどい?(;^_^A

結びに

はい、今回は以上です✨
これでいよいよドメイン駆動設計で作られたサンプルコードのチュートリアルをじっくり学べるわけなんですな✨

昨年の12月に『現場で役立つシステム設計の原則』に出会ってそれからもう半年以上か。。。
もっともっと頑張らないとね。。。

Discussion

ログインするとコメントできます