Kodowanie / dekodowanie std :: string na UTF-16

Muszę obsługiwać format pliku (zarówno do odczytu, jak i zapisu), w którym ciągi są kodowane w UTF-16 (2 bajty na znak). Ponieważ znaki z tabeli ASCII są rzadko używane w domenie aplikacji, wszystkie łańcuchy w moich klasach modelu C ++ są przechowywane w instancjach std :: string (kodowanych w UTF-8).

Szukam biblioteki (przeszukiwanej w STL i Boost bez szczęścia) lub zestawu funkcji C / C ++ do obsługi tej konwersji std :: string <-> UTF-16 podczas ładowania z lub zapisywania do formatu pliku (faktycznie modelowanego jako strumień bytestream), w tym generowanie / rozpoznawanie par zastępczych i wszystkich tych plików Unicode (co prawda nie jestem ekspertem) ...

Jakieś sugestie? Dzięki!

EDYCJA: zapomniałem wspomnieć, że powinien być międzyplatformowy (Win / Mac) i nie może używać C ++ 11.

questionAnswers(3)

yourAnswerToTheQuestion