作者legnaleurc (CA)
看板C_and_CPP
标题[问题] Windows下用fopen开启non-ascii档名
时间Mon Feb 9 03:45:46 2009
今天port程式到Windows, 没想到会卡在这里
我有一个已经是UTF-16编码的路径
用std::wstring存, 在正常状况下用wfopen就可以解决
但是现在开档的是一个我碰不到的程式码
它要求传 char * 给它
里面会使用fopen开档
於是我试了:
1. UTF-8 -- 找不到档案
2. 转成系统的code page看得懂的字串( Big5, SJIS ... etc ) -- 还是找不到
然後它没有提供读取fd的介面
所以不能先开成fd再给它读....
讲了这麽多, 其实就是要问:
有方法可以用fopen打开Unicode的路径吗?
--
自High笔记(半荒废)
http://legnaleurc.blogspot.com/
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.146.194.91
1F:→ WPC001:try T2CA or W2CA marco 02/09 12:14
2F:推 HudsonE:弄一个假的 fopen 给它.. 不过我猜你没有字串长度应该很囧 02/09 13:42
3F:推 Killercat:try _wfopen.... 02/09 15:54
4F:→ Killercat:不过正常来讲都是用_tfopen来写相容码,MSDN看一下呗 02/09 15:56
5F:→ Killercat:疑 我好像看错你的问题了,不过unicode我能用wfopen开说 02/09 15:57
6F:→ Killercat:用fopen是无法开non ascii的档案名称的 02/09 15:57
7F:→ legnaleurc:试过了wcstombs,也是不行... 02/09 21:09
8F:→ legnaleurc:但是我转成locale, 写新档案竟然可以 02/09 21:10
9F:→ legnaleurc:Windows真是深奥 02/09 21:10
10F:→ yk66:可以解释一下楼上说的吗...“写新档案竟然可以” thx 02/09 22:25
11F:→ legnaleurc:就是fopen( "档名", "w" ),可以动... 02/10 03:37
12F:→ legnaleurc:不过真正做fopen的也是我碰不到的函式 02/10 03:38