作者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