for(int i=0;i<GetCount();i++)
{
GetText(i,temp);
MessageBox(temp);
temp+=_T("\n");
ff.WriteString(temp);
}
ff.Close();
如果是英文,程序正常执行,如果我的列表框的项目是中文,则这个项目不能被写进去,程序也不会报任何错误,不知道哪里出问题了,书中的writestring可以写入中文的。。难道和编译器版本有关?
{
GetText(i,temp);
MessageBox(temp);
temp+=_T("\n");
ff.WriteString(temp);
}
ff.Close();
如果是英文,程序正常执行,如果我的列表框的项目是中文,则这个项目不能被写进去,程序也不会报任何错误,不知道哪里出问题了,书中的writestring可以写入中文的。。难道和编译器版本有关?
这个问题网上有很多解决方案呀
有些答案,你自己参考
-----------------------
这个问题其实是这样产生的,我们写进去的只是数据而没有去写UNICODE文本标志。
UNICODE文本标志是(用UltraEdit的16进制打开)在文件的开头两个数据应该是 0xFF 0xFE
因为我们没有写这两个值,所以看起来就是乱码。
“语文"的ANSI文本是这样的:
ED 8B 87 65
"语文"的UNICODE文本是这样的:
FF FE ED 8B 87 65
http://topic.csdn.net/t/20030313/23/1528742.html
------------------------
把T("123456中文 abcdefg unicode \n")换成L("123456中文 abcdefg unicode \n")试试;
http://topic.csdn.net/t/20020605/18/781216.html
for (int i=0; i<(int) dwCount; i++) {
CString string;
GetText (i, string);
string += _T ("\n");
file.WriteString (string);
}
这个是书里的代码,可以用中文.没有用L宏.
他用的是VC6,我用2005.是不是编译器的关系啊?
http://blog.csdn.net/DavidHsing/archive/2008/11/17/3317841.aspx