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

fopen创建文件名字符集有关问题

2012-03-18 
fopen创建文件名字符集问题这个问题折腾了我数小时至今没办法解决......看看各位达人有什么好的办法问题描

fopen创建文件名字符集问题
这个问题折腾了我数小时至今没办法解决......看看各位达人有什么好的办法

问题描述:
已知我要创建一个wchar_t类型文件名为:"第02話 ?ゆうしゃめんま? (BD 1920x1080 x264 AAC コメンタリ切替可).mp4"的文件
但是C语言中的fopen只能接受char*
于是我通过
nLen = wcslen(result)+1;  
WideCharToMultiByte(CP_ACP, 0, result, nLen, str, 2*nLen, NULL, NULL);

此时发现受限于ANSI范围限制'?'与'?'不能正确的转换系统则用?表示,很显然之后的FILE f = fopen(p->path,"wb+");失败。


问,如何才能正确的创建并打开类似含有上面那些字符的文件。OTL跪了


给上测试代码吧

wchar_t ch[100] = L"第02話 ?ゆうしゃめんま? (BD 1920x1080 x264 AAC コメンタリ切替可).mp4";
nLen = wcslen(ch)+1;
WideCharToMultiByte(CP_ACP, WC_COMPOSITECHECK | WC_DEFAULTCHAR, ch, nLen, str, 2*nLen, NULL, NULL);
f = fopen(ch,"wb+");


[解决办法]
http://msdn.microsoft.com/en-us/library/yeby3zcb(v=vs.80).aspx

_wfopen


CreateFileW
[解决办法]
很多函数都有两个版本ansi和unicode版本;
遇到需要unicode字符的,尝试用w开头的函数
[解决办法]

探讨
http://msdn.microsoft.com/en-us/library/yeby3zcb(v=vs.80).aspx

_wfopen


CreateFileW

热点排行