读书人

初学者提问:字符串写入txt文件出现乱码

发布时间: 2012-03-14 12:01:12 作者: rapoo

菜鸟提问:字符串写入txt文件出现乱码
同一个字符串 在edit控件里写入就正常显示 写入txt文件的时候程序正常完成 但是一打开txt文件看见的都是乱码 请问诸位大虾有碰到过这类情况吗?这是为什么呢?

这是代码:
...................................

WriteToTxt( lpTotalPro );

SetDlgItemText(g_hMainWnd, IDC_SMSF_EDIT_BOX, lpTotalPro);

................................
这是WriteToTxt函数的定义
DWORD WriteToTxt( TCHAR* lpStrings )
{
DWORD dw; //写入的数据长度

HANDLE hTxtFile = CreateFile( _T( "\\Program Files\\test.txt "), GENERIC_WRITE, 0, NULL, OPEN_ALWAYS, 0, 0 );

if( hTxtFile == INVALID_HANDLE_VALUE )

MessageBox(NULL, _T( "创建/打开文件失败! "),
_T( "错误 "),MB_OKCANCEL | MB_ICONASTERISK);
else
{

WriteFile( hTxtFile, lpStrings , lstrlen(lpStrings), &dw, NULL);

}

CloseHandle(hTxtFile);

return dw;

}
跪谢!

[解决办法]
因为你写入的是Unicode码的字符,而不是Ascii码的字符

如果要想正确显示Unicode码的字符,在文件起始写入0xFF,0xFE即可
[解决办法]
pknife(小李飞刀) 正解。

读UNICODE文件,需要跳过文件头的两个字节。
同样,写的时候,如果是从头写,得写上标记位,否则,用记事本打开,也会是乱码。

读书人网 >Windows Mobile

热点推荐