MinGW gccでSJIS文字を扱う方法
コンパイルオプションとして-finput-charsetと-fexec-charset使えば良いらしい。gccのデフォルトはutf-8の様です。
ソース
#include <stdio.h> int main(void) { printf("ソース焼きそば\n"); return 0; }
実行結果
~/test$ gcc test.c test.c: 関数 'main' 内: test.c:7:10: 警告: 不明なエスケープシーケンス: '\201' [デフォルトで有効] ~/test$ ./a.exe メ[ス焼きそば ~/test$ gcc test.c -finput-charset=CP932 -fexec-charset=CP932 ~/test$ ./a.exe ソース焼きそば
g++も同様
#include <iostream> using namespace std; int main(void) { cout << "ソース焼きそば" << endl; return 0; }
~/test$ g++ test.cpp test.cpp: 関数 'int main()' 内: test.cpp:7:11: 警告: 不明なエスケープシーケンス: '\201' [デフォルトで有効] ~/test$ ./a.exe メ[ス焼きそば ~/test$ g++ test.cpp -finput-charset=CP932 -fexec-charset=CP932 ~/test$ ./a.exe ソース焼きそば