Преобразование между строкой, строкой & amp; u32string с использованием переполнения libstdStack

Я нашел эту тему Преобразовать между строкой, u16string & u32string и решение (которое выглядит действительно великолепно) работает только с использованием libc ++, а не libstdc ++. В настоящее время libc ++ не может использоваться — его трудно скомпилировать и он плохо работает в Windows.

Есть ли какой-либо метод для преобразования между этими представлениями с использованием C ++ 11 и libstdc ++, который работает на всех платформах?

Я особенно заинтересован в преобразовании u32_string в строку (utf8) и наоборот.

5

Решение

В C ++ 11 есть способ сделать это с помощью wstring_convert учебный класс.

Тем не менее, кажется, что он еще не реализован libstdc ++ (по состоянию на gcc 4.8)

То же самое относится к:

codecvt<char16_t, char, mbstate_t>.
codecvt<char32_t, char, mbstate_t>.
codecvt_utf8.
codecvt_utf16.
codecvt_utf8_utf16.

На самом деле заголовок <codecvt> все еще не присутствует в распределении gcc.

2

Другие решения

Вы можете использовать utf8cpp (http://utfcpp.sourceforge.net/) он предоставляет эти конвертеры как простой в использовании C ++.

0

По вопросам рекламы [email protected]