ASCII -> UTF8
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 24.05.20 00:19
Оценка: +1
Господа, как нынче модно делать сабж? В смысле C++17/20.

На входе есть std::string/char* в текущей локали, на выходе надо получить char* в кодировке UTF8 для передачи в api.
Без необходимости преобразования в wstring. Желательно без промежуточного wstring.

На cppreference большая часть классов и методов, которые могут это выполнить, объявлены deprecated в c++17.
Re: ASCII -> UTF8
От: Alexander G Украина  
Дата: 24.05.20 04:55
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Господа, как нынче модно делать сабж? В смысле C++17/20.


Я бы через это https://www.boost.org/doc/libs/1_58_0/libs/locale/doc/html/group__codepage.html

Но я так понимаю, это не ответ на вопрос, как сделать это средствами C++17/20
Re: ASCII -> UTF8
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 24.05.20 08:26
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Господа, как нынче модно делать сабж? В смысле C++17/20.


Не по сути, но лучше поправить заголовок. ASCII это только младшие 128 кодов, поэтому если подойти формально, то strcpy() достаточно для ответа
Если имелась в виду 8-битка типа cp1251, лучше назвать её явно.
Если это что-то вроде GB2312, то всё хуже

G>На cppreference большая часть классов и методов, которые могут это выполнить, объявлены deprecated в c++17.


https://en.cppreference.com/w/cpp/locale/codecvt вроде ж не deprecated?
Что именно осталось из доступного и чем оно не нравится?
Re[2]: ASCII -> UTF8
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 24.05.20 11:30
Оценка:
Здравствуйте, netch80, Вы писали:

N>https://en.cppreference.com/w/cpp/locale/codecvt вроде ж не deprecated?

N>Что именно осталось из доступного и чем оно не нравится?
Все нравится, но как использовать не понимаю. Мне нужно из char в char, в примере читает в wstring и слишком много приседаний класса, которые я не могу распарсить.
Re: ASCII -> UTF8
От: RonWilson Россия  
Дата: 24.05.20 11:39
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Господа, как нынче модно делать сабж? В смысле C++17/20.


А не проще взять сишные велосипеды или обязательно на C++ и STL?По той же ссылке функция тупо до неприличия :


size_t u8_toutf8(char *dest, size_t sz, const uint32_t *src, size_t srcsz)
Отредактировано 24.05.2020 11:42 RonWilson . Предыдущая версия .
Re[2]: ASCII -> UTF8
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 24.05.20 14:52
Оценка:
Здравствуйте, RonWilson, Вы писали:

RW>Здравствуйте, gandjustas, Вы писали:


G>>Господа, как нынче модно делать сабж? В смысле C++17/20.


RW>А не проще взять сишные велосипеды или обязательно на C++ и STL?По той же ссылке функция тупо до неприличия :


Вопрос больше с целью изучения языка, поэтому интересно что именно modern c++ предлагает.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.