第4回投稿は

エンコーディングについて。


エンコードって何??な人は

IEのメニューから表示→エンコードを開いて

何か選択を変えてみると良い。




CSVを出力しようと

こんな風に書いてみた。


System::IO::StreamWriter^ sw = gcnew System::IO::StreamWriter("test.csv");
sw->WriteLine("あいうえお,かきくけこ,さしすせそ,");
sw->Close();


WクリックしてExcelで開いた。

文字化けした。(汗


テキストエディタで開いた。

化けてなかった。!!


なんかExcelに嫌われたらしい。


調べてみると、エンコードがUTF-8の場合

Excelがエンコードの質問をせずに文字化けで開くのは

仕様らしい。


で、正解はコレ。↓


System::IO::StreamWriter^ sw

= gcnew System::IO::StreamWriter("test2.csv",false,System::Text::Encoding::GetEncoding("shift_jis"));
sw->WriteLine("あいうえお,かきくけこ,さしすせそ,");
sw->Close();


詳細はコチラ。

StreamWriter ,Encoding


ちなみに

System::Text::Encoding::Unicodeを使用した場合

Excel2007では

手動で区切り文字を設定しないと

,(カンマ)で区切ってくれなかった。

CSVなのに。



と、CSVはテキストで扱えるので簡単だし

汎用性も高いのですが

Excelを使うってのも、さほど難しくないんですね~。

-------------- → 関連記事:C++でExcelを使おう!