(一)
wifstream inf;
inf.open(filename,ios::out);
if( inf.eof())
{
return;
}
wchar_t head[2];
inf.seekg(0);
inf.read(head,2);
if( (head[0] == 0xff && head[1]==0xfe )||(head[0]==0xfe&&head[1]==0xff))
{
cout<<"unicode txt file"<<endl;
getchar();
return;
}
cout<<"not unicode txt file"<<endl;
getchar();
return;
(二)
wstring ReadUniCodeTextFile(wstring filename)
{
ifstream fin;
fin.open(filename.c_str(), ios::binary);
size_t index = 2;
wstring str;
if (fin.is_open())
{
while (!fin.eof())
{
fin.seekg(index, ios::beg);
wchar_t wch;
fin.read((char *)(&wch), 2);
str.append(1, wch);
index += 2;
}
}
return str;
}
void SaveUnicodeToUnicodeTextFile(wstring str,wstring filename)
{
ofstream fin(filename.c_str(),ios_base::out|ios_base::binary);//|ios_base::trunc
if (fin.is_open())
{
cout<<"file1read1"<<endl;
char h1 = 0xff, h2 = 0xfe;
fin.write( &h1,1);
fin.write( &h2,1);
fin.write((char*)str.c_str(),sizeof(wchar_t)*str.length());
fin.close();
cout<<"file1read2"<<endl;
}
}