Как вы используете wstring_convert для преобразования между utf16 и utf32? - PullRequest
0 голосов
/ 16 апреля 2020

Когда вы переходите от std::u16string к, допустим, std::u32string, std::wstring_convert не работает, как ожидается chars. Так как же использовать std::wstring_convert для преобразования между UTF-16 и UTF-32, используя std::u16string в качестве входных данных?

Например:

inline std::u32string utf16_to_utf32(const std::u16string& s) {
    std::wstring_convert<std::codecvt_utf16<char32_t>, char32_t> conv;
    return conv.from_bytes(s); // cannot do this, expects 'char'
}

Можно ли reinterpret_cast на char, как я видел в нескольких примерах?

Если вам нужно reinterpret_cast, я видел несколько примеров, использующих размер строки в отличие от общего размера байта для указателей , Это ошибка или требование?

Я знаю, codecvt устарела, но пока стандарт не предлагает альтернативу, он должен это сделать.

...