Специальные символы из БД SQLite - PullRequest
1 голос
/ 03 мая 2010

Я читаю из базы данных sqlite в свое приложение для iphone. В текстах иногда есть специальные символы, такие как «xf2» или «xe0», как я вижу в отладчике в типе данных char *. Когда я пытаюсь преобразовать символы в NSString объект с помощью initWithUTF8String, я получаю ноль обратно.

Как я могу преобразовать такие специальные символы?

1 Ответ

0 голосов
/ 23 сентября 2011

Похоже, проблема с кодировкой.Вы можете получить «xf2» или «xe0», если у вас есть такие символы, как © или ®.Этим символам требуется 2 байта, и sqlite может интерпретировать каждый байт символа как отдельный символ.
Итак, попробуйте использовать не initWithUTF8String, а initWithCString:

NSString *stringFromDB = [[NSString alloc] initWithCString:charsArrayFromDB 
                                                  encoding:NSASCIIStringEncoding];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...