Обнаружить и прочитать весь файл UTF-8 с помощью C ++ 11? - PullRequest
0 голосов
/ 22 апреля 2019

Я знаю об этом традиционном способе,

#include <fstream>
#include <string>
#include <cerrno>
#include <iostream>

int main()
{
    std::ifstream in("file.txt", std::ios::in | std::ios::binary);

    if (in)
    {
        std::string contents;
        in.seekg(0, std::ios::end);
        contents.resize((size_t)in.tellg()); // Allocate buffer
        in.seekg(0, std::ios::beg);

        // Read the file
        in.read(&contents[0], contents.size());

        // ... do something ..

        // Close
        in.close();
    }
    else
        throw(errno);
}

Чтобы определить, является ли его файл ANSI или UTF-8, нужно ли мне прочитать первые три байта, чтобы проверить, соответствует ли спецификация илилучший способ C ++ 11 с использованием codecvt?Как я могу заставить этот codecvt работать на весь файл?

...