リソーススクリプトの utf-8 指定とか
gcc で Unicode で書かれたソースコードをコンパイルするとか、Unicode 対応の Windows API を使うアプリケーションを生成するとか、そんな場合、ソースコードのはじめのほうに #define UNICODE
を書くか、コンパイラオプションで -DUNICODE
を書くかすればよい。と。そういったな。あれは本当だ。
一方で、リソーススクリプトにも、Unicode にまつわる問題がある。デフォルトでは、Shift_JIS で記述しなければ文字化けしてしまうのだが、ある方法を使えば、utf-8 で記述できるようになる。
詳細は、以下のサイトに書いてある。
リソーススクリプトで Unicode
リソーススクリプトのコンパイラである windres.exe に -c 65001
オプションをつける。65001 とは、utf-8 のコードページである。
さらに、ソースコード中で指定する方法もある。すなわち #pragma code_page(65001)
である。簡単。
以上、C のソースコードと、リソーススクリプトという、2 種類の Unicode 系問題の解決方法をまとめたものが、以下の表だ。
はやみひょう
ソースで | コマンドラインで | |
---|---|---|
コード.c | #define UNICODE | -DUNICODE |
リソース.rc | #pragma code_page(65001) | -c 65001 |
尺あまり
C ソースファイルには、先頭に以下のコードを記述するのが、自分にとって定番となっている。
#define UNICODE #include <windows.h>
リソーススクリプトの場合は、以下だ。
#pragma code_page(65001) #include <windows.h>
最近は、リソーススクリプトを全く書いてない。モニタの電源を切るとか、サスペンドするとか、UI をつくるまでもないアプリケーションをつくってばかりだからだ。