在非UNICODE环境下(多字节工程)使用CFileStdio读取非UNICODE文件,只有中文字符显示为乱码?
很奇怪?为什么?什么方式都试过,都不正确?原因究竟是什么?
很奇怪?为什么?什么方式都试过,都不正确?原因究竟是什么?
解决方案 »
- vc6.0 怎么在一个窗体中改变另一个窗体上的按钮状态?
- 怎么取得0X06中的06数字
- 第七课 静态文本框 图片控件单选按钮 复选框
- RichEdit 在vs 2005遇到特殊字符显示不正常
- 国家新增加了数控程序员职业,作为这个行业的人,建议CSDN开辟专栏,毕竟自控的编程也是写程序啊
- 有没有把MFC工程中类导出的工具?
- 如何让RICHEDIT一行有固定个字
- 当一个扩展名和我的程序关联以后,我如何才能在我的程序中得到,我打开的文件名?
- 如何让一个窗口不被该变大小??
- VC中对话框应用程序大小的问题?
- IntersectClipRect将俩个区域的集合//是图例中红色区域码???
- MFC中extern中的使用疑问
char d[2];
d[0]=第一个值;
d[1]=第二个值;
char* p;
p=(char*)d;
就是你把读出来的中文数据赋给d,然后再用p显示试试
另外,不管你的工程是不是UNICODE,如果你的文件是ANSI编码的,要用CHAR缓冲区接收,如果你的文件是UNICODE编码的,要用WCHAR缓冲区来接收。这样才能正常显示中文。或者接收后+=到CString对象里,它会自动转换,正常显示。
另外,不管你的工程是不是UNICODE,如果你的文件是ANSI编码的,要用CHAR缓冲区接收,如果你的文件是UNICODE编码的,要用WCHAR缓冲区来接收。这样才能正常显示中文。或者接收后+=到CString对象里,它会自动转换,正常显示。
另外,不管你的工程是不是UNICODE,如果你的文件是ANSI编码的,要用CHAR缓冲区接收,如果你的文件是UNICODE编码的,要用WCHAR缓冲区来接收。这样才能正常显示中文。或者接收后+=到CString对象里,它会自动转换,正常显示。
CStdioFile Script;
if (!Script.Open(strFileName, CFile::typeText|CFile::modeRead))
{
return;
} CString Line;
while (Script.ReadString(Line))
{
Line += _T("\r\n");
} //关闭文件.
Script.Close();
只要遇到中文,Line中的内容就显示乱码.