Ich muss eine Datei als std :: fstream (oder eigentlich jede andere std :: ostream) öffnen, wenn der Dateiname "Unicode" Dateiname ist.Öffnen von fstream mit Datei mit Unicode-Dateinamen unter Windows mit Nicht-MSVC-Compiler
Unter MSVC habe ich Nicht-Standard Erweiterung std::fstream::open(wchar_t const *,...)
? Was kann ich mit anderen Compilern wie GCC (am wichtigsten) und wahrscheinlich Borland Compiler tun.
Ich weiß, dass CRTL bietet _wfopen
aber es gibt C FILE *
Schnittstelle statt io-Streams, vielleicht ist es ein Nicht-Standard-Weg von FILE *
io-Stream zu erstellen? Gibt es eine boost::ifstream
mit MSVC wie Erweiterung für Windows?
verwenden Sie können nicht. Unter Mac OS X wurde entschieden, dass die POSIX-Datei-APIs - und damit auch std :: fstream - alle utf-8 verwenden würden. In Umgebungen, in denen es keine plattformspezifischen Erweiterungen gibt (z. B. gcc und bc unter Windows), können die c & C++ - Laufzeitfunktionen nicht zuverlässig erwartet werden Greifen Sie auf die angegebenen Dateien des Dateisystems mit nicht-ASCII-Zeichen in ihrem Namen zu. –
@Chris Ich habe keine Probleme mit der Bibliothek, die UTF-8 unterstützt - es ist perfekt für mich. Das Problem, dass Windows UTF-8 – Artyom
eine hackish Workaround für MinGW nicht unterstützt, ist in http://stackoverflow.com/questions/6524821/opening-stream-via-function – marcin