Я использую библиотеку, которая создает строки с нулевым символом в конце UTF-8 типа const char*
.Примеры включают:
MIGUEL ANTÓNIO
DONA ESTEFÂNIA
Я хотел бы преобразовать эти два const char*
типа в CString
так, чтобы они читали:
MIGUEL ANTÓNIO
DONA ESTEFÂNIA
Для этого я используюследующую функцию, которую я сделал:
CString Utf8StringToCString(const char * s)
{
CStringW ws = CA2W(s, CP_UTF8);
return CW2T(ws);
}
Функция, кажется, делает то, что я хочу (по крайней мере, для этих двух случаев).Тем не менее, мне интересно: хорошо ли вообще использовать макрос CA2W, а затем CW2T?Я делаю какое-то преобразование с потерями, делая это?Есть ли побочные эффекты, о которых я должен беспокоиться?
Некоторые другие детали:
- Я использую Visual Studio 2015
- Мое приложение скомпилировано с использованием Используйте многобайтовый набор символов