首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Windows Mobile >

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

2012-03-14 
菜鸟提问:字符串写入txt文件出现乱码同一个字符串在edit控件里写入就正常显示写入txt文件的时候程序正常完

菜鸟提问:字符串写入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文件,需要跳过文件头的两个字节。
同样,写的时候,如果是从头写,得写上标记位,否则,用记事本打开,也会是乱码。

热点排行