ページ 11

VC2005プロジェクトの文字コード設定

Posted: 2009年6月13日(土) 14:59
by tk-xleader
VC2005で、ソースファイルにUTF-8(BOMなし)を扱いたいのですが、ソースファイルの文字コードを指定する方法はあるでしょうか?

Re:VC2005プロジェクトの文字コード設定

Posted: 2009年6月13日(土) 15:36
by tk-xleader
適当なプロジェクトをたて、utf-8(BOMなし)をコンパイルした結果です。
#include<iostream>

int main()
{
	std::cout<<"テストです 漢字も入れます"<<std::endl;
	std::cout<<"This is Alphabet"<<std::endl;
	return 0;
}
1>------ ビルド開始: プロジェクト: scuni, 構成: Debug Win32 ------
1>コンパイルしています...
1>main.cpp
1>d:\programings\visualstudio\c++ native\scuni\scuni\main.cpp : warning C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してください。
1>d:\programings\visualstudio\c++ native\scuni\scuni\main.cpp(5) : error C2001: 定数が 2 行目に続いています。
1>d:\programings\visualstudio\c++ native\scuni\scuni\main.cpp(6) : error C2143: 構文エラー : ';' が 'std::cout' の前にありません。
1>ビルドログは "file://d:\Programings\VisualStudio\C++ Native\scuni\scuni\Debug\BuildLog.htm" に保存されました。
1>scuni - エラー 2、警告 1

Re:VC2005プロジェクトの文字コード設定

Posted: 2009年6月14日(日) 01:29
by Justy

>ソースファイルの文字コードを指定する方法はあるでしょうか?

 多分ないと思います。
 MSVCでは UTF-8(BOMなし)はシフトJISと認識されてしまいますので、
BOMありにするしかないんじゃないかと。

Re:VC2005プロジェクトの文字コード設定

Posted: 2009年6月14日(日) 08:32
by tk-xleader
ありがとうございます。
BOMなしでは無理でしたか…、GCCではBOMありではコンパイルが通らなくなってしまうんですよね…

ソースコードのunicode化を進めていきたかったのですが…、かといってutf-16にしてしまうと、ソースコードの性質上半角英数が多いのでサイズが馬鹿みたいに増えていくんですよね…

そもそも、ソースコードをUnicodeにすることって推進すべきでしょうか?それともやめとくべきでしょうか?

Re:VC2005プロジェクトの文字コード設定

Posted: 2009年6月14日(日) 12:58
by Justy
 うーん、そういうことなら多少サイズが大きくなってもUTF-16にするか
諦めて従来の文字コードにするしかないでしょうね。

 或いはビルド前のイベント・バッチで文字コードを変換してから
ビルドする、とか。



>推進すべきでしょうか
>それともやめとくべきでしょうか

 世の中的には推進方向なんでしょうけど、こういうのは環境や状況に合わせて
ケースバイケースで決めないといろいろ苦労しそうです。

 今回は特定のバージョンの2コンパイラのみの対応で、
UTF-16でうまくいっているのであれば、UTF-16でいいと思います。

Re:VC2005プロジェクトの文字コード設定

Posted: 2009年6月14日(日) 16:37
by tk-xleader
>世の中的には推進方向なんでしょうけど、こういうのは環境や状況に合わせて
>ケースバイケースで決めないといろいろ苦労しそうです。

とりあえず、今回作成中のソフト(とは言っても単なるバージョンアップ)は、将来の本格的なプロジェクトに向けた、テストも兼ねてやっています。
今回はBOM付utf-8で作成します。ATL/WTL使っていますし、今回はVCのみの対応でもさほど問題なさそうなので…