Flash8のswfでXMLクラスを用いたUTF-8のXMLファイルはBOM(0xEF, 0xBB, 0xBF)を付けないと読んでくれない。
WindowsではShiftJISを使ってXMLを出していたが、Linuxを使うにあたり、 UTF-8に移植する際に発覚。
こんな感じでBOMをつけるようにした。
static const char BOM[3] = {0xEF, 0xBB, 0xBF};
fstream strm("hoge.xml", std::ios::out);
strm.write(BOM, sizeof(BOM));
strm << "XMLデータ" << endl;
strm.close();
Comments are closed here.