Windowsのターミナルで文字化けの対処法

WindowsでのC言語の環境構築で紹介した、コマンドプロンプトを使ってC言語を実行する方法だと、このように日本語が文字化けしています。

#include <stdio.h>

int main(void){
  printf("Hello,world!\n");
  printf("こんにちは");
  return 0;
}




これは文字コードの影響です。

文字コードとは

文字コードとは、コンピュータ上で文字を扱うために割り当てられているものです。
Windowsでは Shift JIS という文字コードが採用されています。
AtomはデフォルトでUTF-8という文字コードで書かれるため、UTF-8で書かれたコードを Shift JIS で出力しようとしたので、エラーが発生しました。

解決策

Atomの文字コードを Shift JIS に変える方法でも良いのですが、その方法だと他の人のコードを実行する時などでまた文字化けしてしまいます。
なのでコマンドプロンプトのほうをUTF-8に変える方法で解決していきます。

コマンドプロンプトで以下コマンドを入力します。

chcp 65001

これを入力すると、文字化けせずに出力することが出来ます。



ちなみに Shift JIS に戻したい時は

chcp 932

を入力すると戻せます。


さいごに

文字化けをみるとなんだか怖いと思っていましたが、仕組みがわかれば全然怖くないですね!