Протокол буфера и UTF-8

История схем кодирования / нескольких операционных систем и порядковых номеров приводила к путанице с точки зрения кодирования всех форм строковых данных (т.е. всех алфавитов); по этой причине буферы протокола имеют дело только с ASCII или UTF-8 в его строковых типах, и я не вижу никаких полиморфных перегрузок, которые принимают строку C ++. Тогда возникает вопрос: как получить строку UTF-16 в буфер протокола?

Предположительно мне нужно сохранить данные в виде wstring в коде приложения, а затем выполнить преобразование UTF-8, прежде чем я вставлю их в сообщение (или извлеку из него). Каков самый простой - переносимый способ Windows / Linux сделать это (один день вызова функции из хорошо поддерживаемой библиотеки сделает мой день)?

Данные будут поступать с различных веб-серверов (Linux и Windows) и в конечном итоге окажутся в SQL Server (и, возможно, в других конечных точках).

- изменить 1--

Предложение Марка Уилкинса, кажется, отвечает всем требованиям, возможно, кто-то, имеющий опыт работы с библиотекой, может опубликовать фрагмент кода - от wstring до UTF-8 - чтобы я мог оценить, насколько легко это будет.

- редактировать 2 -

предложение чем-то еще. Я буду исследовать повышение сериализации в дальнейшем.

Ответы на вопрос(4)

Ваш ответ на вопрос