Protokollpuffer und UTF-8

Die Geschichte der Codierung von Schemata / mehreren Betriebssystemen und Endianen hat zu einem Durcheinander in Bezug auf die Codierung aller Formen von Zeichenfolgendaten geführt (z. B. alle Alphabete). Aus diesem Grund behandeln Protokollpuffer nur ASCII oder UTF-8 in ihren Zeichenfolgentypen, und ich kann keine polymorphen Überladungen erkennen, die die C ++ - Zeichenfolge akzeptieren. Die Frage ist dann, wie man einen UTF-16-String in einen Protokollpuffer bekommen soll.

Vermutlich muss ich die Daten als wstring in meinem Anwendungscode behalten und dann eine UTF-8-Konvertierung durchführen, bevor ich sie in die Nachricht stecke (oder daraus extrahiere). Was ist die einfachste - tragbare Windows / Linux-Methode, um dies zu tun (ein einzelner Funktionsaufruf aus einer gut unterstützten Bibliothek würde meinen Tag verlängern)?

Die Daten stammen von verschiedenen Webservern (Linux und Windows) und landen schließlich in SQL Server (und möglicherweise anderen Endpunkten).

- bearbeite 1--

Mark Wilkins Vorschlag scheint zu passen, vielleicht kann jemand, der Erfahrung mit der Bibliothek hat, ein Code-Snippet - von wstring bis UTF-8 - posten, damit ich abschätzen kann, wie einfach es sein wird.

- edit 2 -

etws Vorschlag umso mehr. Ich werde die Boost-Serialisierung weiter untersuchen.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage