2016-04-06 63 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