收录日期:2020/02/20 20:12:41 时间:2016/07/15 11:38:28 标签:基础类
  有个外国软件生成的XML文件,中间有中文。

使用fopen,fread读的时候,里面的中文是乱码。

把XML在我的电脑中复制,并粘贴到新文件,保存,读的就是正确的中文。

VC中如何做?
Unicode的问题,你不妨使用CreateFile ReadFile 等API进行操作
工程设置为Unicode类型
用unicode字符函数
丢2个函数出来啊。不太了解。

OFSTRUCT of;
HANDLE pfile = (HANDLE)OpenFile(lpszPathName,&of,OF_READ);
if( pfile == (HANDLE)HFILE_ERROR)
{
AfxMessageBox("打开文件失败");
delete this->m_cMarkup;
this->m_cMarkup = NULL;
return FALSE;
}

DWORD filesize = GetFileSize(pfile,NULL);
char *p_Buffer = new char[filesize+1];
DWORD readsize;
BOOL bRead = ReadFile(pfile,p_Buffer,filesize,&readsize,NULL);
p_Buffer[filesize] = 0;

CloseHandle(pfile);

char *p = p_Buffer + 315680;
AfxMessageBox(p);
delete p_Buffer;
p_Buffer = NULL;
return FALSE;


读出来的还是乱码。
而且我查了下,这个文件不是UNICODE文件。



     CFile mFile(lpszPathName,CFile::modeRead);
   byte head[2];
   mFile.Read(head,2);  
   if((head[0]==0xff&&head[1]==0xfe)||(head[0]==0xfe&&head[1]==0xff)   )
   {
  AfxMessageBox(_T("File is Unicode!"));
   }



运行同一个文件,没有报是 FILE IS UNICODE.
字符编码不同
你自己的计算机上没有安装相应的语言支持,读取成BYTE后,你也没有处理。

TINY XML 就是这样的,他的代码直接在没有西文支持的中文系统上时,代码中好多乱码
放到西文系统中就不是乱码了。

所以,要根据国家识别码转换,这个,好像好麻烦的样子,没有搞过
我是直接装了个VM的西文系统
查看一下xml内的编码是ansi还是unicode,然后根据你项目的设置,如果需要则对读入的内容做相应ansi<->转换.
用UltraEdit打开文件,然后切换到16进制视图,贴出最前面的四个字节
Unicode
FF FE

Unicode big endian
FE FF

UTF-8
EF BB BF
格式是UTF-8

要转换为ANSI. 

ASP如何产生系统日志? 飘浮的女孩,叫我如何再相信你 FormsAuthentication安全性讨论,主要是客户端Cookie中重要的用户名密码是否安全。 请大家帮忙看一下这个问题,关于坐标定位。 关于在IE访问servlet的问题..... 如何把xml数据导入到sql server中 [转一下^_^]似乎……都老了……那字那词那句……然而…… 关于QQ密码保护的一个问题,帮我... 关于IIS的一个奇怪的问题? 高分!求教ASP系统日志问题! 如何转换内码?Unicode相关 在ASP.Net能不能像VB.Net那样调用普通的DLL? 问一个位图的问题 急需《数据结构与程序设计C语言描述》第二版书中程序源代码 关于Linux下C++编程的书籍都有什么?我是初学者!!! 一个重要word文件的密码忘了,怎么办?请赐教!急! 能不能判断一个特定的控件是否存在特定窗体上?大家帮忙! 俺不懂java,请教各位我应该用什么编辑器或者编译器入手,现在流行的是什么? 各位帮忙看看错在那里,告知解决之道 为什么我创建视图出现异常 郁闷:希捷硬盘质量\"有点差\"(个人观点) 怎样让VB写的程序可以在后台运行(没有焦点的情况下能运行也行)? 我该怎么办? 求ClassExplorer Pro下载,在网上只查到ChinaBCB上有,但是不知道怎么上不去…… 请大家帮忙给我的网站取个名字 biggie(飞碟)请接分 ??Visual C++的简称?相信吗?居然有这样的问题! 这个真的是我们的CCTV吗。 喜欢战争片的兄弟近来看一下!!!! 因为我用的电脑是公共的 ,所以我想将自己的文件夹设密码,谁能教我? 是硬盘的问题吗?