由于近期在做代码的迁移,将windows下的一些代码迁移到xcode下,碰到了一个的问题,
就是,fopen这个函数,打开一个文件,
在win32下,或者说标准c下,fopen( "测试.txt", "a+" ); 其中文件名是标准的ansi字符串。即双字节编码的格式,比如gb2312,big5之类。
但是在xcode内,如果将源代码设置为gb2312的格式,那么就会导致打开文件失败,因为fopen需要的是utf8格式!
现在问题是,我已经调用了 setlocal( LC_ALL, "zh_CN.gb2312" );并且将input-charset和exec-charset都设置为gb2312,但是,fopen依然要utf8!
为了保持跨平台的统一性,我希望的是,都用gb2312编码的源文件,能够都能用ansi字符串来打开文件,请教各位有没有什么办法?
------解决方案--------------------
改成unicode16试一下。
------解决方案--------------------
最后一个办法是判断系统,然后将参数强制编码。
------解决方案--------------------
文件名都用英文就没事了