すがブロ

sugamasaoのhatenablogだよ

Windows7でcmd.exeを日本語化させる

Windows7を買いました!!

OEM版?だからなのか、OSの表示上は日本語なのだけれど、cmd.exe上でーーようするにターミナル上では日本語が扱えなかった。
chcp 932 とかするとコードポイントをデフォルトのASCII(デフォルトはCP437)から、おなじみのCP932へ変更できるようだけど、実行しても Invalid code page と言われるだけで、変更が効かなかった。

解決策

「コントロールパネル」→「時計、言語、及び地域」→「地域と言語」の「管理」タブを開く

「システムロケールの変更」ボタンを押して、ロケールを日本語にする

選択するとOSの再起動を求められるのでそのまま再起動を行う。そうして新しく「スタート」→「アクセサリ」→「コマンドプロンプト」でプロンプトを開くと日本語(Shift-JIS)で立ち上がる。chcpコマンドを実行すると932と返ってくるのも確認できる。

注意

上記のOSの設定を変更する前にcmd.exeへのショートカットを作っている場合、フォントが以前のままの設定になりつつ、プロンプト内のコードポイントだけ新しくなるという現象が発生する可能性がある。そうすると、なぜかフォントの選択欄だけ以前の設定を引きずってしまい、MS明朝などの日本語フォントが選択できず詰んでしまう。
ショートカットを作るなら、改めてオリジナルのコマンドプロンプトから派生させるようにしよう。

余談

chcp でコードポイントを変えられるのだけれど、65001を指定するとUTF-8になる。もしかしてUTF-8にすると人類に平和が訪れるのでは? と思ったのだけれど、どうもUTF-8にすると日本語フォントを指定できないようなので儚い夢となりました*1

*1:レジストリをいじるとフォントを変えられるっぽいから、もしかしたらそれでうまくいくかもしれない