2016-04-06 62 views
0

我與fopen with unicode filename的情況相同,我想使用一個使用fopen的庫。有問題的庫是minizip,我需要它在UTF-8編碼下工作,在Windows,UNIX(OSX),iOS和Android上。 我讀了答案,包括關於GetShortPathName的討論,本質上結論是重寫庫。 有沒有辦法解決這個問題? 另外,我讀到UNIX系統上的fopen函數可以處理UTF-8編碼(與其windows對應部分不同)。任何人都可以確認嗎?Minizip - 以UTF-8文件名使用fopen

我真的很討厭必須四處走動,並在minizip的每個地方放置一些ifdef WINDOWS ...有沒有人有另一種選擇?

回答

2

在Windows下,對於Unicode項目使用_wfopen。請注意,它接受Unicode(UTF-16)字符串,而不是UTF-8。對於UTF-8標準fopen有額外的選項ccsFILE *fp = fopen("newfile.txt", "rt+, ccs=encoding");

+0

據我所知,fopen的編碼選項適用於文件的內容,而不是文件名。我錯了嗎? –

+0

@DavidMenard不知道「ccs」 - 也許你是對的。 '_wfopen'用於Unicode文件名。 – i486