AR ホームベーカリー

オイラのアウトプット用ホームベーカリー!

Windows の言語を日本語に切り替える

Java から log4j でログ流してたら日本語が全部 ? になったのでなんでや文字化けかいな!となるなどした。

デスクトップなど GUI の表示言語

スタートメニューから language と入力して開ける言語のページから、日本語を追加して他の言語を削除します。

削除しなくてもいいんだけど、どうせ利用しないし混乱の元になるので僕は削除するようにしています。

言語

これだけだと Java (log4j) 経由で吐き出すログがぶっ壊れます。なので追加で以下の対応をします。

Windowsロケール設定

上記の言語画面から引き続き、関連設定管理用の言語の設定[管理] タブUnicode 対応ではないプログラムの言語システム ロケールの変更 と遷移します。

管理用の言語とは

現在のシステム ロケール日本語 (日本) に変更したら OS 再起動が必要なので再起動します。

なんだァ、コイツ……

これでオッケー!

ただし、システムロケール変更前に作成したファイルは UTF-8 になってるっぽく。ここに日本語ロケールの文字を出力すると SJIS で吐き出されるので、ファイルが壊れます (壊れました)。

エンコード変更しても修復できず、「しかしメモ帳だと SJIS で出力された日本語が読める」という状態だったので、同じような状態であれば素直にログファイルを作り直した方がよいでしょう。 もちろん、ログファイル作り直せない!という事情がある場合は、必ずメモ帳で開くとすれば運用回避できます。リスク保有的な考え方なのであんまよくはないです……(しょんぼり)。

Linux だと/etc/locale.conf とかで管理されていると思うんですが、「Windows って上記の言語設定したらそれで終わりじゃない、ってこと!?」とハチワレみたいな顔になりましたね。Windows 全然わからん。

発生する要因について

こういうことらしい。 Java おまえ……となってしまった。

blogs.osdn.jp

参考

qiita.com

teratail.com