首页 > 其他 > 详细

fstream读写UNICODE文件

时间:2015-04-13 14:33:09      阅读:291      评论:0      收藏:0      [点我收藏+]

今天遇到要处理UNICODE文件的情况,网上找了一圈都是读取出字节,再转的,这个不方便啊!想起了有codecvt这么个东西,顺藤摸瓜,找到了方法。

locale utf16(locale(""), new codecvt_utf16<wchar_t, 0x10ffff, little_endian>);
wifstream fin("Module.rc");
wofstream fout("Module.rc.tt", ios_base::out | ios_base::binary);
fin.imbue(utf16);
fout.imbue(utf16);
wstring line;
while (getline(fin, line))
fout << line << endl;

  

codecvt_utf16的最后参数我使用的是little_endian,因为我的文件就是这格式的,大家根据自己的情况进行修改。如果纯粹的读取内容的话,可以使用consume_header,自动识别格式。

wofstream需要使用二进制输出,否则输出来的回事乱码。

fstream读写UNICODE文件

原文:http://www.cnblogs.com/icedream/p/4421969.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!