永发信息网

这个方法写出来的xml文件在ultraedit打开时是16进制显示的,不能再IE打开,请问怎么办诶

答案:2  悬赏:0  手机版
解决时间 2021-04-14 06:41
  • 提问者网友:轮囘Li巡影
  • 2021-04-13 20:17
WriteLine(FILE *pFile, const TCHAR *szOut, const TCHAR *szFmt)
{
TCHAR szTempBuf[4096];

memset(szTempBuf, 0x00, sizeof(szTempBuf));
wsprintf(szTempBuf, szOut, szFmt );
fwrite(szTempBuf, _tcslen(szTempBuf)*sizeof(TCHAR), 1, pFile);
}

WriteLine(fp, _T("\n\n") , _T(""));

因为程序是一个可以编译成ANSI和Unicode的程序,如果改定义的话,代价太大了,,有没有什么办法?
最佳答案
  • 五星知识达人网友:孤独的牧羊人
  • 2021-04-13 21:03
看到你这个问题时,我就想到是文件头引起的,试了一下果然

你的xml文档中编码选的是UTF-8, 这种编码的文件需要前3个字节分别为0xEF 0xBB 0xBF

后面才接着是你的正文内容,如果不这样就IE就认不出的,ultraedit也不会认为它是UTF-8文档

各种编码的文件头都不一样,比如Unicode就是0xFF 0xEF

ASCII码就没有前置头,直接就是正文

而且我看你写文件的方式以及你字符操作的方式,你的输出应该不是UTF-8编码的,

用这种宏输出,只有2种情况要么是Unicode,要么是ASCII码,所以你的正文

encoding=\"UTF-8\"这段 在你选择ASCII码时应该填encoding=\"ISO-8859-1\"

在你选择Unicode时应该填encoding=\"Unicode\"。

希望对你有帮助。
全部回答
  • 1楼网友:三千妖杀
  • 2021-04-13 21:26
虽然我很聪明,但这么说真的难到我了
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯