gccでコンパイルしたときの文字化け対策(2)

gccで表示する文字の文字化け対策です。
gccでコンパイルする人以外は参考にならないと思います。
 
 
文字コードsjisのソースファイルに含まれる、「ソ」・「表」などが文字化けしてしまう症状が出ました。
“表示ソフト”と表示するソースファイルを、gccでコンパイルすると「warning: unknown escape sequence:」と警告が出ますが、コンパイルは成功しています。
生成した実行ファイルを実行すると、文字化けしてしまい読み取ることができません。
 
文字化けする原因としてはgcc特有のもので、ソースコードに含まれる一部の2バイト文字に対応していないとのことです。
今回の場合ですと、sjisの「ソ」は16進数で「83 5c」で表されるので、「5c」の部分をエスケープシーケンスの「\」として解釈されてしまうたため、未知のエスケープシーケンスが含まれますと警告が出るようです。
同じように、「表」「貼」「能」「予」「禄」等もsjisの文字コードに「5c」が含まれるので文字化けします。
 
 
文字コードsjisを使用する場合、2バイト目にエスケープシーケンスと同じ値が含まれる場合は、入力した文字の後ろに「\」を入れることで正常に表示することができます。
 

“表示ソフト”と表示したい場合は、”表\示ソ\フト”と入力する。
 
「\」を入れることで、コンパイル時に警告が出なくなり、文字化けせずに表示できるようになります。
 
 
この問題は、gccでコンパイルする上では避けようがないもののようです。
 
 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です