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

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

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

Есть предложения? Спасибо!

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

8
задан Peter 18 June 2012 в 22:24
поделиться