Je dois ouvrir un fichier en tant que std :: fstream (ou en fait tout autre std :: ostream) lorsque le nom de fichier est un nom de fichier "Unicode".Ouverture fstream avec fichier avec nom de fichier Unicode sous Windows utilisant un compilateur non MSVC
Sous MSVC j'ai non standard extension std::fstream::open(wchar_t const *,...)
? Que puis-je faire avec d'autres compilateurs comme GCC (le plus important) et probablement le compilateur Borland.
Je sais que CRTL fournit _wfopen
mais il donne C FILE *
l'interface au lieu de flux io, peut-être il y a une manière non standard pour créer flux io de FILE *
? Y at-il boost::ifstream
avec MSVC comme extension pour Windows?
Vous ne pouvez pas. Sur Mac OS X, il a été décidé que les API du fichier POSIX - et donc std :: fstream - prendraient toutes utf-8. Dans les environnements où il n'y a pas d'extensions spécifiques aux plates-formes (telles que gcc et bc sous Windows), les fonctions d'exécution de c & C++ ne peuvent pas être attendues de manière fiable (en fait, elles pourraient avoir leurs propres extensions, mais hors du standard POSIX). accéder aux fichiers donnés par le système de fichiers avec des caractères non ascii dans leur nom. –
@Chris Je n'ai aucun problème avec la bibliothèque qui supporte UTF-8 - c'est parfait pour moi. Le problème que Windows ne prend pas en charge UTF-8 – Artyom
une solution de contournement hackish pour MinGW est dans http://stackoverflow.com/questions/6524821/opening-stream-via-function – marcin