LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1163|回复: 2

请问, 如果用fopen来创建一个含有中文名的文件

[复制链接]
发表于 2009-12-25 14:00:43 | 显示全部楼层 |阅读模式
#include <stdio.h>

int man()
{
     FILE* fp = fopen("这是一个文件", "a+");
     if(NULL == fp) printf("error\n");
     fclose(fp);
     return 0;
}

上面程序创建出来的文件是显示的文件名是乱码.
请问我应该如何创建含有中文名的文件呢?

系统: RHL5.4
发表于 2009-12-25 15:29:01 | 显示全部楼层
1)确认源代码编码方式,比如gb2312,编译时
2)运行时,得到当前locale,比如zh_CN.UTF-8
3)运行时,调用iconv,从gb2313转到UTF-8
4)调用fopen等等
回复 支持 反对

使用道具 举报

发表于 2009-12-25 15:49:54 | 显示全部楼层
Post by yam_tom;2059184
上面程序创建出来的文件是显示的文件名是乱码.
请问我应该如何创建含有中文名的文件呢?


关键是确认你的源代码的编码。目标系统如果可控制为 utf8,那么就固定源代码编码为 utf-8。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表