[cygwin]gccで作ったプログラムで,日本語が文字化けする

windowsのcygwin環境にてgccでプログラムを作成した場合、日本語が文字化けする場合があります。
これは、C言語のソースファイル(.cファイル)と、使用しているターミナルの文字コードが一致していないのがよくある原因です(ターミナルというのは、Cygwin Terminal/xterm/コマンドプロンプトetcの事で、いわゆるコマンドを打ち込む”黒い画面”の事です)。


対処法は、プログラムを保存する際に.cファイルの文字コードをutf-8で保存すれば、正しく出力できます。

現在保存されいるソースファイルの文字コードは、fileコマンドで確認できます。

$ file test01.c
test01.c: UTF-8 Unicode C program text



ファイルの文字コードを変更する方法は色々ありますが、Windows Vista/Windows 7以降のOSを使用している場合は、Windowsに標準で入っているメモ帳から変更するのが簡単です。
ファイル->名前をつけて保存で、表示されるダイアログの右下にある”文字コード”を、UTF-8にしてから保存ボタンをクリックすれば変更されます。




また、文字コードを変更できない/変更したくない場合で、かつ、コンソールにCygwin Terminalを使用している場合は、以下の方法で出力される文字コードをSJISに指定することで、文字化けを回避できます。

ウィンドウ右上のアイコンを右クリック


Options…をクリックし、左メニューからTextを選択
画面右下のLocale,Character setを ja_JP, SJISにする



但し、上記の方法で出力文字コードを変えると、SJISで保存したプログラムを文字化けせずに出力させることはできますが、今度は他のコマンドの出力が文字化けしてしまいます。なので、あまりお勧めではないです。

関連記事

コメントを残す

メールアドレスが公開されることはありません。