ofstream 处理wchar写文件保留unicode格式
2014-06-17 11:58
337 查看
std::ofstream recordFile; recordFile.open(Wstr(recordName).Buf(), std::ios::out| std::ios::binary); if (recordFile.is_open()) { recordFile.write("\xff\xfe",2); recordFile.write((const char *)content.c_str(),content.size()*2); recordFile.close(); } else { LOG(LS_ERROR) << "chatrecord: save error on opening file"; return 1; }
1 使用ofstream,也可以处理wchar_t 格式的文件经,
1.1 不可使用wofstream,虽然处理文件名没有问题,但文件内容需要额外处理,如设置locale("chs"),最后输出的文件中,都是按照gb2312存储汉字,不是unicode。使用wofstream存储汉字并保留unicode 编码需再查询
2 换行符需要使用 L"\r\n",文件中编码为0d 00 0a 00
3 open函数中要保留 binary ,否则 \n 字符在最后的文件中是 0D 0A 00, L"\r\n" 就变成 0D 00 0D 0A 00
4 写文件内容前,先写入BOM。
5 由于用ofstream 写文件,而存储文件内容的变量时wstring,需要强转类型,按字节写入。
6 open以后一定要判断一下。
相关文章推荐
- 【转】warning C4819,该文件保存为 Unicode 格式以防止数据丢失,处理方法
- c++文件处理ofstream,ifstream
- Ghost批处理文件的基本格式
- VB或者VC处理DWG 4000 格式文件,努力ING!
- 使用POI来处理Excel和Word文件格式(POI的介绍)
- 用Excel打开csv文件时,如何处理数字内容展现会自动转换格式的问题
- java 读文件中文处理(读出unicode文件 及 写入unicode文件)
- 在ASP中自动检测文件的编码格式,支持UTF-8、GB2312、UTF-7、Unicode、Unicode Swap等格式的检测
- FileSystemObject,ADODB.Stream 能否操作UTF-8格式的文件
- 批处理文件的格式
- .net 中对读 /写带BOM的Unicode格式文件 和不带Bom的Unicode格式文件的方法
- FileSystemObject,ADODB.Stream 能否操作UTF-8格式的文件
- 7.3 使用POI来处理Excel和Word文件格式
- properties文件自动存盘为Unicode格式(Eclipse插件)
- UTF8 == 是Unicode传送格式。即把Unicode文件转换成BYTE的传送流
- 详解文件操作(ifstream、ofstream、fstream)【转载】
- 写UNICODE格式的文本日志文件(UNICODE编码)
- 用file::write如何写unicode格式的文本,文件
- 用C++实现简单的文件I/O操作(ifstream,ofstream)
- 使用python 3.0 处理utf8格式的文件BOM问题