Мне приходится обрабатывать формат файла (как для чтения, так и для записи в него), в котором строки кодируются в UTF-16 (2 байта на символ). Поскольку символы из таблицы ASCII редко используются в домене приложения, все строки в моих классах моделей C++ хранятся в экземплярах std::string (в кодировке UTF-8).
Я ищу библиотеку (безуспешно искал в STL и Boost) или набор функций C/C++ для обработки этого преобразования std::string <-> UTF-16 при загрузке или сохранении в файловом формате. (фактически смоделированный как поток байтов), включая генерацию/распознавание суррогатных пар и все, что связано с Unicode (я, по общему признанию, не эксперт)...
Есть предложения? Спасибо!
РЕДАКТИРОВАТЬ: забыл упомянуть, что он должен быть кроссплатформенным (Win/Mac) и не может использовать C++11.