+ -
当前位置:首页 → 问答吧 → vs2008保存文件是乱码,怎么处理?

vs2008保存文件是乱码,怎么处理?

时间:2011-12-12

来源:互联网


 CFileDialog dlg(FALSE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,_T("All File(*.txt)*.txt||"));
CString strPath,strText=_T("");
TCHAR write[10000];
if(dlg.DoModal()==IDOK)
{
strPath=dlg.GetPathName();
if(strPath.Right(4)!=_T(".txt"))
strPath+=_T(".txt");
CFile file(strPath,CFile::modeCreate|CFile::modeWrite);
GetDlgItemText(IDC_EDIT1,strText);
_tcscpy_s(write,10000,strText.GetBuffer(0));
file.Write((char*)write,strText.GetLength());
file.Close();
}

生成的txt打开是乱码,保存对话框下面没“编码”选项,保存不了Unicode编码。

作者: tixisong   发布时间: 2011-12-12

如果unicode,写入到文件,要先转换成多字节

作者: ouyh12345   发布时间: 2011-12-12

BYTE temp[]={0xFF,0xFE}; //unicode 文件的头文件。。。
file.Write(temp,2);
file.SeekToEnd();
下面开始写数据了。。。

作者: shen_wei   发布时间: 2011-12-12

引用 2 楼 shen_wei 的回复:
BYTE temp[]={0xFF,0xFE}; //unicode 文件的头文件。。。
file.Write(temp,2);
file.SeekToEnd();
下面开始写数据了。。。


按你的办法已经成功了,感谢。

作者: tixisong   发布时间: 2011-12-12