Кодировать / декодировать std :: string в UTF-16

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

Я ищу библиотеку (безуспешно искал в STL и Boost) или набор функций C / C ++ для обработки этого std :: string & lt; - & gt; Преобразование UTF-16 при загрузке из файла или его сохранении в формате файла (фактически смоделированном как поток байтов), включая генерацию / распознавание суррогатных пар и всего такого, что связано с Unicode (я, разумеется, не эксперт) ...

Какие-либо предложения? Спасибо!

РЕДАКТИРОВАТЬ: забыл упомянуть, что он должен быть кроссплатформенным (Win / Mac) и не может использовать C ++ 11.

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

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