unicode工程中使用CFile 和CStdioFile写入字符串bug

  今天在搞unicode工程,发现一个问题。就是使用CStdiofile 使用WriteString写入CString但是不能写入中文汉字,很奇怪。代码如下:

 

 

<textarea cols="78" rows="11" name="code" class="cpp">CStdioFile stdFile; stdFile.Open(_T("c://"),CFile::modeCreate|CFile::modeWrite); if(stdFile.m_hFile==CFile::hNullFile) { return; } CString szText=_T("苏打粉"); stdFile.WriteString(szText); stdFile.Close() </textarea>  

 

 运行之后发现,根本没有写入到文件中。 从网上找,用CFile的Write只要在前面写入/xff/xfe可以。尝试之后果真是的。样例如下

 

<textarea cols="82" rows="15" name="code" class="cpp">CStdioFile stdFile; stdFile.Open(_T("c://"),CFile::modeCreate|CFile::modeWrite); if(stdFile.m_hFile==CFile::hNullFile) { return; } CString szText=_T("苏打粉"); stdFile.Write(_T("/xff/fe"),2); stdFile.Write(szText,szText.GetLength()*sizeof(TCHAR)); stdFile.Close()</textarea>

即使加上头文件locale.h 和setlocale()直接使用WriteString也是不能写入中文汉字。或许是一个小bug吧。

 

 

你可能感兴趣的:(unicode工程中使用CFile 和CStdioFile写入字符串bug)