Я успешно настроил небольшой XZ-компрессор, который возвращает std :: string, которая содержит сжатый вывод.Для обработки результата мне нужно «преобразовать» std :: string в NSString.К сожалению, есть проблемы (кодирование?):
Несмотря на то, что «abc» не является хорошим примером, это показывает, что сложность довольно хорошая:
NSString *text = [_text string]; // Length is 3
std::string content = xz_compress([text UTF8String]); // Length is 60
NSString *convertedContent = [NSString stringWithCString:content.c_str() encoding:NSUTF8StringEncoding];
// convertedContent is (null) and 0 characters long
Использование NSUnicodeStringEncoding делает NSString как минимум 2 символамидолго, но они не совпадают с теми, что указаны в std :: string.
Мои вопросы:
- Возможно ли это / предпочтительный способ (уже неуверенный в этом)?
- Если так: какую кодировку мне нужно использовать?
Заранее спасибо!
Пол