2010-10-31 6 views
2

У меня есть строка вроде этого: «Это Pi (\ u03a0) и Sigma (\ u03a3).». Как я могу преобразовать это, чтобы содержать и печатать эффективные символы, используя стандартные библиотеки C++?Преобразование UTF-8 со стандартными библиотеками C++ (no/clr)

Это решение http://msdn.microsoft.com/en-us/library/system.text.encoding.utf8(VS.80).aspx, использование .NET framework (/ clr компиляция), что я хочу избежать предпочтения стандартных библиотек C++.

Заранее спасибо.

ответ

2

Я не совсем уверен, что вы подразумеваете под «стандартом», но, я думаю, вы имели в виду «неуправляемый». Если это то, что вы хотите, попробуйте ICU. Это не очень легко освоить, но он определенно способен на такой conversions.

BTW. Если вы просто хотите преобразовать кодированную UTF-16 wstring в кодированную строку UTF-8, вы можете сделать это с помощью вызова API WideCharToMultiByte() (предполагая Windows).

0

Я не знаю, есть ли способ сделать это, используя стандартную библиотеку, хотя я предполагал, что нет. Однако вы можете использовать iconv. Это часть стандартной библиотеки Cn, но есть windows dll available.

Смежные вопросы