写入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引起的
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((LPCTSTR)str1,wz,1,fp1);

按照这样试了一下,还是乱码

------解决方案--------------------
fwrite(&str1,wz,1,fp1);
改为
fwrite(str1,wz,1,fp1);
>>按照这样试了一下,还是乱码
有乱码是正常的,有些字符是不可以显示或者不可以读
比如字符串fwrite("\x08\x09\x10",3,1,fd);
写入文件不可以显示所以看似乱码

------解决方案--------------------
写入char类型的吧,不然txt显示的就是乱码,可能跟txt识别的方式有关吧,不认。
====================
哦,理解错了,CString类型你去取地址是不对的,它是MFC的类,而不是内置的变量,CString的实现不是这样的,它的数据没存在它本身的地址上,而是它指向的一个堆空间上
------解决方案--------------------
你的str1是怎么声明的啊