Necesito abrir un archivo como std :: fstream (o en realidad cualquier otro std :: ostream) cuando el nombre de archivo es el nombre de archivo "Unicode".Abrir fstream con archivo con nombre de archivo Unicode en Windows usando el compilador no MSVC
Bajo MSVC tengo no estándar extensión std::fstream::open(wchar_t const *,...)
? ¿Qué puedo hacer con otros compiladores como GCC (el más importante) y probablemente el compilador de Borland?
Sé que CRTL ofrece _wfopen
pero da C FILE *
interfaz en lugar de io-corrientes, tal vez hay una forma no estándar para crear io-stream de FILE *
? ¿Hay alguna boost::ifstream
con extensión similar a MSVC para Windows?
No puede. En Mac OS X se decidió que las api del archivo POSIX, y por lo tanto std :: fstream, tomarían utf-8. En entornos donde no hay extensiones específicas de plataforma (como gcc y bc en Windows (en realidad, pueden tener sus propias extensiones, pero eso estaría fuera del estándar POSIX)) las funciones de tiempo de ejecución de c & C++ no se pueden esperar confiablemente acceder al sistema de archivos dado archivos con caracteres no ascii en su nombre. –
@Chris No tengo problemas con la biblioteca que admite UTF-8; es perfecta para mí. El problema de que Windows no es compatible con UTF-8 – Artyom
es una solución provisional para MinGW en http://stackoverflow.com/questions/6524821/opening-stream-via-function – marcin