写入TXT文件的是乱码解决思路
写入TXT文件的是乱码
int wz=strlen(str1);
fp1=fopen(F32_ShowSystime,"a+");
fwrite(&str1,wz,1,fp1);
fclose(fp1);
其中F32_ShowSystime是文件的路径,str1是一个CString类型的变量,已赋值。但是,打开这个TXT文件,里面显示的是乱码
小弟是一个菜鸟,向各位大虾求教。
------解决方案--------------------
fwrite(&str1,wz,1,fp1);
改成:
fwrite((LPCTSTR)str1,wz,1,fp1);
------解决方案--------------------
估计是UNICODE引起的
int wz=strlen(str1);
fp1=fopen(F32_ShowSystime,"a+");
fwrite(&str1,wz,1,fp1);
fclose(fp1);
其中F32_ShowSystime是文件的路径,str1是一个CString类型的变量,已赋值。但是,打开这个TXT文件,里面显示的是乱码
小弟是一个菜鸟,向各位大虾求教。
------解决方案--------------------
fwrite(&str1,wz,1,fp1);
改成:
fwrite((LPCTSTR)str1,wz,1,fp1);
------解决方案--------------------
估计是UNICODE引起的
- C/C++ code
CStringA str2(str1); int wz=strlen(str2); fp1=fopen(F32_ShowSystime,"a+"); fwrite((LPCSTR)str2,wz,1,fp1); fclose(fp1);
------解决方案--------------------
- C/C++ code
FILE *pFile=fopen("1.txt","w"); char buf[22]="http://www.sunxin.org"; buf[21] = '\0'; fwrite(buf,1,22,pFile);
------解决方案--------------------
下个HexEdit软件,用这个软件打开文本
------解决方案--------------------
------解决方案--------------------
fwrite(&str1,wz,1,fp1);
改为
fwrite(str1,wz,1,fp1);
>>按照这样试了一下,还是乱码
有乱码是正常的,有些字符是不可以显示或者不可以读
比如字符串fwrite("\x08\x09\x10",3,1,fd);
写入文件不可以显示所以看似乱码
------解决方案--------------------
写入char类型的吧,不然txt显示的就是乱码,可能跟txt识别的方式有关吧,不认。
====================
哦,理解错了,CString类型你去取地址是不对的,它是MFC的类,而不是内置的变量,CString的实现不是这样的,它的数据没存在它本身的地址上,而是它指向的一个堆空间上
------解决方案--------------------
你的str1是怎么声明的啊