[問題] Windows下用fopen開啟non-ascii檔名

看板C_and_CPP (C/C++)作者 (CA)時間16年前 (2009/02/09 03:45), 編輯推噓2(2010)
留言12則, 5人參與, 最新討論串1/1
今天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

02/09 12:14, , 1F
try T2CA or W2CA marco
02/09 12:14, 1F

02/09 13:42, , 2F
弄一個假的 fopen 給它.. 不過我猜你沒有字串長度應該很囧
02/09 13:42, 2F

02/09 15:54, , 3F
try _wfopen....
02/09 15:54, 3F

02/09 15:56, , 4F
不過正常來講都是用_tfopen來寫相容碼,MSDN看一下唄
02/09 15:56, 4F

02/09 15:57, , 5F
疑 我好像看錯你的問題了,不過unicode我能用wfopen開說
02/09 15:57, 5F

02/09 15:57, , 6F
用fopen是無法開non ascii的檔案名稱的
02/09 15:57, 6F

02/09 21:09, , 7F
試過了wcstombs,也是不行...
02/09 21:09, 7F

02/09 21:10, , 8F
但是我轉成locale, 寫新檔案竟然可以
02/09 21:10, 8F

02/09 21:10, , 9F
Windows真是深奧
02/09 21:10, 9F

02/09 22:25, , 10F
可以解釋一下樓上說的嗎...“寫新檔案竟然可以” thx
02/09 22:25, 10F

02/10 03:37, , 11F
就是fopen( "檔名", "w" ),可以動...
02/10 03:37, 11F

02/10 03:38, , 12F
不過真正做fopen的也是我碰不到的函式
02/10 03:38, 12F
文章代碼(AID): #19ZpPjJ1 (C_and_CPP)
文章代碼(AID): #19ZpPjJ1 (C_and_CPP)