■この記事の概要
この記事は、Shift_JISで記述されたコードが「ソ能表」などの特定文字により、gccコンパイル時にエラーを引き起こす問題を解説しています。
エラーを回避するためのUTF-8への変換の提案も含まれ、Shift_JIS特有の文字化け問題を解決する実践的なアドバイスが提供されています。
■gccでエラーにならないので困る
//nkf -s -Lw f1.c > Shift_JIS.c
#include <stdio.h>
int main(void){
//表
puts("なんとか表");
//表
puts("正規表現");
//能
puts("なんとか機能");
//ソ
puts("カーソル");
//貼
puts("貼り付け");
//予
puts("予測");
//暴
puts("暴走");
//十
puts("5C問題化け字十選");
}
このプログラムがShift_JISで書かれている場合、
いわゆる5C問題で全部コメントになります。
gccで何のエラーもなくコンパイルできますが
何もしないプログラムとなります。
エラーが出ないので間違いに気が付きません。
■gccでエラーになるので困る
//nkf -s -Lw f1.c > Shift_JIS.c
#include <stdio.h>
int main(void){
puts("なんとか表");
puts("正規表現");
puts("なんとか機能");
puts("カーソル");
puts("貼り付け");
puts("予測");
puts("暴走");
puts("5C問題化け字十選");
}
このプログラムがShift_JISで書かれている場合、
vs2022で何のエラーもなくコンパイルできますが
gccでは5C問題でコンパイルエラーとなります。
UTF-8にソースコードを変換できないか検討してください。