第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();
詳細はコチラ。
ちなみに
System::Text::Encoding::Unicodeを使用した場合
Excel2007では
手動で区切り文字を設定しないと
,(カンマ)で区切ってくれなかった。
CSVなのに。
と、CSVはテキストで扱えるので簡単だし
汎用性も高いのですが
Excelを使うってのも、さほど難しくないんですね~。
-------------- → 関連記事:C++でExcelを使おう!