こんなお悩みにお答えします。
記事の内容
- Visual Studio Code(VSCode)でプログラムを実行したときの文字化けを直す方法
- 日本語ファイルを開いた時の文字化けを直す方法
この記事を読むとにVisual Studio Codeで日本語が文字化けする時の対処方法をまとめて知れます。
ターミナルで出力された日本語の文字化けを直す方法
初期設定のままでは日本語を表示するプログラムを実行すると文字化けします。
例:
//ソースコード #include <stdio.h> void main() { printf("こんにちは\n"); }
実行結果
縺薙s縺ォ縺。縺ッ
これはソースコードの文字コードと実行結果を出力しているターミナルの文字コードが異なるために起こります。
文字コードとは?
文字コードとはコンピュータにとっての言語のようなものです。人の言語には日本語、中国語、英語など複数あります。例えば英語しかわからない人に「リンゴ」と言っても意味を正しく理解できません。正しく理解してほしかったら「apple」と言うか、相手に日本語を覚えてもらわなくてはいけません。どちらかがもう片方の言語に合わせなくてはいけないわけです。
人にとっての言語と同じようにコンピュータの世界にも文字コードが複数あります。Visual Studio CodeではソースコードはUTF-8という文字コードで保存されますが、ターミナルはCP932という文字コードを使っています。この場合UTF-8が日本語、CP932が英語に当たります。文字コード(言語)が違うと文字化け(ミスコミュニケーション)が発生します。
文字化けを直すにはソースコードかターミナルどちらかを相手の文字コードに合わせる必要があります。
文字化けを直す方法
ここではターミナルの文字コードをソースコードに合わせることで文字化けを解決します。
ターミナルの文字コードをソースコードと同じUTF-8に変えるには「chcp 65001」というコマンドを打ちます。
chcpは文字コードを設定するためのコマンドです。65001はUTF-8のことです。「chcp 65001」は文字コードをUTF-8に変更せよという意味です。
文字化けを一時的に直す方法
ターミナルに直接「chcp 65001」と打ってEnterキーを押します。
その後ソースコードを実行すると正しい日本語で出力されます。
今後も文字化けしなくする方法
上の方法ではVisual Studio Codeを閉じるとリセットされ、再び文字化けするようになります。
そこで以下ではVisual Studio Codeの立ち上げ時に自動で「chcp 65001」を適用する方法を解説します。
左下の歯車マークをクリックし、出てくるメニューの「設定」をクリックします。
右上に出てくるマークをクリックします。
settings.jsonファイルが開きます。中カッコ「{ }」の中に書いてある文の最後尾にカーソルを合わせます。(中カッコ内に何も書いてなければ中カッコの中にカーソルを合わせます。)
カーソルを合わせた位置に以下の四角内をすべてコピペします。(中カッコ内に何も書いてなかった場合は最初の行のカンマ「,」は不要。)
settings.jsonは保存してVisual Studio Codeを再起動します。ソースコードを実行し、正しい日本語で出力されれば成功です。
日本語ファイルを開いた時の文字化けを直す方法
日本語で書かれたファイルを開くと以下のように文字化けすることがあります。
これはファイルの文字コードとVisual Studio Codeの文字コードが異なることが原因です。
何が起きているのか?
文字コードとは何かについては上で解説した通りです。
冒頭の例ではjapanese.txtファイルがShift JISという文字コードで保存されているのに、Visual Studio CodeはUTF-8という文字コードだと思って開いているので文字化けしています。
文字化けを直す方法
Visual Studio Codeに「このファイルはShift JISですよ」と教えてあげることで文字化けを解決します。
画面下の「UTF-8」をクリックし、出てきたメニューの「エンコード付きで再度開く」をクリックします。
「Japanese (Shift JIS)」をクリックします。
文字化けが解消されました。
しかしこのままだとファイルを閉じて再度開いた時にまた文字化けします。常に正しい日本語で表示したい場合は追加で以下の設定をします。
Visual Studio Codeはすべてのファイルをまずは文字コードUTF-8で開くからです。以下ではjapanese.txtの文字コードをUTF-8に変えて保存する方法を解説します。
上の方法で文字化けを解消した状態で画面下の「UTF-8」をクリックし、出てきたメニューの「エンコード付きで保存」をクリックします。
「UTF-8」をクリックします。
これで次にファイルを開くときも文字化けしません。
上の操作はファイルごとに行います。Visual Studio Codeにはファイルの文字コードを自動判定する機能もあるのですが、別のファイルがうまく開けなくなることがあるのであまりおすすめしません。
おわりに:日本語の使用は控えめが良いかも
個人的にプログラミングを練習したり、ちょっとしたツールを作ったりするくらいなら日本語を使っても問題ありませんが、仕事でプログラムを書く際にはコメントも含めてコードはすべて半角英数で書くことをおすすめします。理由は2つあります。
1つ目は日本語の文字は文字化けしやすいからです。別のパソコンに移したら文字化けした、別のソフトウェアで開いたら文字化けしたなどはよくあります。文字コードの変更方法を調べるのは面倒ですし、文字化けして全く読めなくなるよりは英語で書いてあった方がマシです。
2つ目は組み込みプログラムを書く場合、機械によっては海外製で日本語対応しておらず思わぬエラーの原因になるからです。原因不明のエラーで残業する前に原因になりそうなものは極力排除したいところです。
日本語以外にも全角スペースや全角数字、記号などの半角英数以外の文字の使用は控えるのが吉です。