+ -
当前位置:首页 → 问答吧 → 在使用fopen打开中文的文件名时,总是出错!!!(

在使用fopen打开中文的文件名时,总是出错!!!(

时间:2011-09-08

来源:互联网

请教一个棘手的问题:
我的一开发环境是:RedHat Enterprise 5
  gcc 4.1.2
  QT 3.3.6 

在使用fopen打开中文的文件名时,总是出错!!!(如果将中文换成英文文件名后,错误消失,但必须要使用中文的文件名)
实际代码如下:
   
  pFilename="地址映射测试.xml";
fp= fopen(pFilename,"r");
if(fp == NULL)
{
  b=false;
  return;


作者: hhzzmm   发布时间: 2011-09-08

字符集不对。

使用QFile来打开文件。而且Qt中字符串默认是就是unicode.所以中文也可以。

作者: feiyinzilgd   发布时间: 2011-09-08

Windows没关系,因为VC首先就不在乎源码字符集,utf8源码编译出来也是gbk中文,而双版本Windows API也给你自动转换成内核使用的UTF16

Linux下你要保证你源码的字符集和磁盘上文件名的字符集完全一致才行,比如都是utf8,gcc不指定编码的情况下,靠源文件编码

作者: jackyjkchen   发布时间: 2011-09-08