boost序列化到xml文件,宽字符的问题

草鞋 发布于 2012/04/07 21:04
阅读 1K+
收藏 0

今天遇到一个问题,归结出来,大家看看怎么解决。

//---------------------------------------------------------------------------

#include <stdlib.h>

#include <vcl.h>
#pragma hdrstop

#include <tchar.h>

#include <boost/archive/xml_iarchive.hpp>
#include <boost/archive/xml_oarchive.hpp>
#include <iostream>
#include <fstream>

void save()
{
  std::ofstream file("archive.xml");
  boost::archive::xml_oarchive oa(file);
  std::string s = "Hello World!\n";
  oa & BOOST_SERIALIZATION_NVP(s);
}

void load()
{
  std::ifstream file("archive.xml");
  boost::archive::xml_iarchive ia(file);
  std::string s;
  ia & BOOST_SERIALIZATION_NVP(s);
  std::cout << s << std::endl;
}

 

 

int _tmain(int argc, _TCHAR* argv[])
{


 save();

 load();

 system( "pause" );


 return 0;
}
//---------------------------------------------------------------------------


先调用save(),再调用load().一切非常正常。

现在把"Hello World!\n"换成"你好,世界!\n",可以save(),

但是,load()的时候,就有异常了。

这显然是个宽字符的问题。怎么解决呢,请教大家。

 


 

加载中
0
USIDCBBS
USIDCBBS
用unicode 
0
草鞋
草鞋

就是需要具体细节啊。呵呵

返回顶部
顶部