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

【高手和版主帮忙啊】请问linux移植过程中二进制中文文件的乱码有关问题

2012-02-20 
【高手和版主帮忙啊】请教linux移植过程中二进制中文文件的乱码问题我在把一个项目从windows移植到linux下,

【高手和版主帮忙啊】请教linux移植过程中二进制中文文件的乱码问题
我在把一个项目从windows移植到linux下,已经解决了所有的问题。
但通过测试确定了一个错误就是,原先在windows某配套程序生成的二进制文件A,要在我的程序中装载使用,里面有中文信息。
移植之后,将A文件放置在linux下读取,就发生了乱码。

请问高手朋友,如何解决啊,这方面一点经验都没有啊,多谢多谢了

附上读取函数:(windows下用这个函数读的,没有问题)

bool   CDictionary::Load(const   char   *pszFileName)//*pszFileName是文件A的名称
{
FILE   *fp;
Free();
if((fp=fopen(pszFileName, "rb "))==NULL)
      return   false;//fail   while   opening   the   file
fread(&m_nIndexSum,sizeof(int),1,fp);//ܵ
m_pIndexTable=new   CIndexNode[m_nIndexSum];
for(int   i=0;i <m_nIndexSum;i++)
m_pIndexTable[i].ReadFile(fp);
fclose(fp);
return   true;
}

[解决办法]
先不论是否乱码,
读取后输出看看,
是否正确 ~

由于使用 rb 方式,
那么对应的写文件也是一样的二进制方式,
而二进制方式写文件容易产生乱码,
不过这个没有关系,
不影响信息的正确性 ~
[解决办法]
我也是菜鸟,你在linux下WR出来的2进制的数据是对的吧,也就是每个字节的数据还是对的吧,有乱码,是因为window是GB2312的标准,linux下是UTF-8

热点排行