同じ UTF-8 だろ?

最近の Visual Studio では UTF-8 のソースを扱える。
それならクロスプラットフォーム(Windows <=> Linux 間など)での開発の場合、UTF-8 使えばいんじゃね?と思って調べてみた。
が。。。結論から言うと、「UTF-8だからといって、全く同じソースは使えねー」ということが判明した。

UTF-8 は BOM というシグネチャのようなものがファイルの先頭についているものと付いていないものがある。前者を UTF-8、後者を UTF-8N、などと表記したりする。BOM付き、BOM無し、なんていう言い方もあるかな。
この BOM が曲者で、あるなしで各コンパイラの動作が違ってくる。Visual Studio (2005 以降) では BOM 無し UTF-8 がコンパイルできず、GCC(4.3)では BOM 付き UTF-8 がコンパイルできなかった。
2003 だと BOM 付き、BOM 無しが問題なく処理できるようなのだが、その為だけにVSのバージョンをあげない訳にもいかないしねー。。。

せっかく同じ文字コードを処理出来る VC++ と GCC なのに、BOM の有り無しで処理出来なくなってしまうのが残念。GCC なら Shift-JIS のファイルをコンパイルできるから、Shift-JIS で統一するか。でも、Linux で開発するのに文字コードが Shift-JIS なんてちょっと気持ちが悪いなぁ。。。

Comment

Comment Form
公開設定

Trackback


→ この記事にトラックバックする(FC2ブログユーザー)
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。