Unicode字符串写入文本

本文详细介绍了在文件写入操作中如何使用Unicode标识符确保文本正确显示,包括创建文件、写入文本及处理文件头的相关代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Unicode文本写入到文件时候,在头部需要Unicode标志 0xfffe,才能显示文本

CTime ct = CTime::GetCurrentTime();

CString fileName = ct.Format(_T("DB_%Y_%m_%d.log"));
CString tempstr = ct.Format(_T("[%H:%M:%S]"));

CString strText;
GetDlgItem(IDC_EDIT1)->GetWindowText(strText);


/*FILE* fp = NULL;
fp = _tfopen(fileName,_T("wb+,ccs=UNICODE"));
if(!fp)
return;
BYTE headText[2]={0xff, 0xfe };
fwrite( headText, sizeof(BYTE), sizeof(headText), fp );
int nTextLen = strText.GetLength();
if(fwrite(strText,sizeof(wchar_t),nTextLen,fp) != nTextLen)
{
return;
}
CString strTemp = _T("\n");
fwrite(strTemp,sizeof(wchar_t),strTemp.GetLength(),fp);
fclose(fp);*/
CStdioFile file;
BOOL bFileExsit = PathFileExists( fileName );
if(!file.Open(fileName, CFile::modeCreate | CFile::modeNoTruncate | CFile::modeWrite | CFile::typeBinary | CFile::shareDenyNone))
{
return;
}
if(!bFileExsit)
{
file.SeekToEnd();  
WORD unicodeFlag = 0xFEFF;  // 文件采用unicode格式  
        file.Write( (void*)&unicodeFlag, sizeof(WORD) ); 
}


file.SeekToEnd();
file.WriteString((LPCTSTR)tempstr);
file.WriteString(_T("\n"));
file.WriteString((LPCTSTR)strText);
file.WriteString(_T("\n end \n"));
file.Close();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值