44 votes

Lire un fichier Unicode UTF-8 dans wstring

Comment puis-je lire un fichier Unicode (UTF-8) en wstring (s) sur la plate-forme Windows ?

-6voto

dlchambers Points 882

C'est un peu brut, mais pourquoi ne pas lire le fichier en tant que simples octets et convertir le tampon d'octets en wchar_t* ?

Quelque chose comme :

#include <iostream>
#include <fstream>
std::wstring ReadFileIntoWstring(const std::wstring& filepath)
{
    std::wstring wstr;
    std::ifstream file (filepath.c_str(), std::ios::in|std::ios::binary|std::ios::ate);
    size_t size = (size_t)file.tellg();
    file.seekg (0, std::ios::beg);
    char* buffer = new char [size];
    file.read (buffer, size);
    wstr = (wchar_t*)buffer;
    file.close();
    delete[] buffer;
    return wstr;
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X