Преобразуйте символ константы* строка к NSString с длиной И кодированием

Интересно, какой метод был бы лучше для преобразования символа константы* строка к NSString.
Я нашел, что существуют некоторые факты.

  • [NSString stringWithCString:length:] отчасти удерживается от использования.
  • [NSString stringWithCString:encoding] может использоваться для моей цели

Но я хочу преобразовать с длиной И кодирующий (потому что я хочу сделать тот штраф, если у меня есть некоторый символ Non-ASCII путем установки кодирующий к UTF-8). Какие-либо мысли?

Я просто думаю теперь

  1. создайте другой символ и копию с длиной при помощи станд.:: strncpy (ch1, ch2, len)
  2. использование [NSString stringWithCString:encoding:]

Но это не работает хорошо.

15
задан Dietrich Epp 23 January 2010 в 02:05
поделиться

2 ответа

Использование:

[NSString initWithBytes:length:encoding].
16
ответ дан 1 December 2019 в 00:10
поделиться

Если переменная const char* имеет имя foo (и указывает на нулевую строку), просто скажите

[NSString stringWithUTF8String:foo]

Поскольку UTF-8 - это суперсет ASCII, то это сработает, будет ли foo указывать на UTF-8 или ASCII. Тогда вы можете без проблем перейти на полный Юникод.

39
ответ дан 1 December 2019 в 00:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: