Символ Unicode в основной графике - PullRequest
2 голосов
/ 27 февраля 2011

У меня есть приложение для iPad, где я храню некоторые данные в формате Unicode (не ASCII) в БД SQLite. Позже я получаю эти данные, и мне нужно записать их в PDF. Все данные ASCII работают нормально, но данные Unicode представляются как «закодированные символы»

Процесс идет так: Получите данные и запишите их в консоль. Это идет хорошо. Вот вывод на консоль: LOOKUP: ↑, чтобы включить все действия: FOR: COORDINATIONGOAL:

(маленькая стрелка вверх - мой юникодный символ)

В этот момент данные сохраняются в строке NSString. Далее, я конвертирую его в символ, чтобы использовать его в основной графике:

NSString *t = [data objectForKey:pi.persistencekey];
char *text = " ";

if ([t length] > 0) {           
  text = [t UTF8String];            
}

CGContextShowTextAtPoint (pdfContext,  pi.x, pageRect.size.height - pi.y, text, strlen(text));

PDF генерирует нормально, но сгенерированный текст показывает странные символы там, где должна быть стрелка вверх.

Я пробовал другие методы декодирования, но ни один из них не работает.

Заранее спасибо за любую помощь.

1 Ответ

1 голос
/ 27 февраля 2011

CGContextShowTextAtPoint имеет некоторые известные недостатки рисования юникода.В основном это не так.

У вас есть два варианта:

  1. drawAtPoint и его друзья из NSString.Их можно найти, выполнив поиск в документе для UIStringDrawing.

  2. или, если вам нужно перейти на низкоуровневый, основной текст.время (99%) 1. достаточно хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...