Преобразование const char * string в NSString с длиной и кодировкой
Интересно, какой метод лучше было бы преобразовать const char * string в NSString.
Я обнаружил, что есть некоторые факты.
- [NSString stringWithCString: length:] является устаревшим.
- [NSString stringWithCString: encoding] может использоваться для моей цели
Но я хочу конвертировать с длиной и кодировкой (потому что я хочу сделать это отлично, если у меня есть некоторый символ без символов ASCII, установив кодировку в UTF-8). Любые мысли?
Теперь я просто думаю
- создайте другие char и скопируйте с длиной с помощью std:: strncpy (ch1, ch2, len)
- use [NSString stringWithCString: encoding:]
Но это не работает.
Ответы
Ответ 1
Если ваша константа const char * имеет имя foo
(и указывает на строку с нулевым завершением), просто скажите
[NSString stringWithUTF8String:foo]
Поскольку UTF-8 является надмножеством ASCII, это будет работать, если foo
указывает на UTF-8 или ASCII. Затем вы можете без проблем переходить на полный Юникод.
Ответ 2
Использование:
[NSString initWithBytes:length:encoding].