我需要能够读取/写入包含中文字符的文件unicode字符串。
文档说CFile :: typeUnicode“仅在派生类中使用”,但我找不到任何使用它的派生类的引用。
是否有任何“官方”版本的CFile可以让我读写unicode? p>
或者我最好尝试使用这样的东西:http://www.codeproject.com/Articles/4119/CStdioFile-derived-class-for-multibyte-and-Unicode
答案 0 :(得分:3)
这似乎是一种更简单的方法:请参阅How to Read and Write Text Files in Unicode through CStdioFile,它使用FILE
流以Unicode格式打开文件,然后使用该流打开CStdioFile
类。
//
// For Writing
//
// Old-Style... do not use...
//CStdioFile f;
//f.Open(_T("\test.txt"), CFile::modeCreate | CFile::modeWrite);
// Open the file with the specified encoding
FILE *fStream;
errno_t e = _tfopen_s(&fStream, _T("\test.txt"), _T("wt,ccs=UNICODE"));
if (e != 0) return; // failed..
CStdioFile f(fStream); // open the file from this stream
f.WriteString(_T("Test"));
f.Close();
//
// For Reading
//
// Open the file with the specified encoding
FILE *fStream;
errno_t e = _tfopen_s(&fStream, _T("\test.txt"), _T("rt,ccs=UNICODE"));
if (e != 0) return; // failed..CString sRead;
CStdioFile f(fStream); // open the file from this stream
CString sRead;
f.ReadString(sRead);
f.Close();
答案 1 :(得分:0)
您还可以考虑使用另一个为您完成所有艰苦工作的课程。我使用 CTextFileDocument :
CTextFileDocument class help topic
您可以使用提供的 CTextFileWrite 来写入许多Unicode风格。例如:
Object