/** * 为了能让3ds max 的打包zip程序可以读取txt列表文件. * 必需要能写入utf-8带BOM的txt文件. * 关键代码是用wstring_convert把wstring转成string * 以前试过wfstream , 直接就无法写入中文 * 调用的命令行: * "D:\Program Files\Autodesk\3ds Max 2014\maxzip" "D:\\Temp\\2.zip" @"D:\\Temp\\test.txt" * 经测试 可行 */ #include "pch.h" #include <iostream> #include <fstream> #include <string> #include <codecvt> using namespace std; int main() { std::wstring str = L"C:\\Users\\itkdq\\Desktop\\心电\\xindian13\\map\\guiziP5080366.jpg"; std::wstring_convert<std::codecvt_utf8<wchar_t>> conv; std::string narrowStr = conv.to_bytes(str); { std::ofstream ofs("d:\\Temp\\test.txt"); //文件是utf8编码 char c1 = 0xEF;// 仿utf-8 BOM头 三字节 char c2 = 0xBB; char c3 = 0xBF; ofs << c1 << c2 << c3; ofs << narrowStr; } }