Конвертировать NSString с умляутами в const char * - PullRequest
1 голос
/ 01 февраля 2012

Я искал часы, чтобы решить эту проблему, и ничего не нашел. Извините, если ответ где-то в Интернете, я действительно не мог найти его.

У меня есть NSString *header = @"ästrç"; или любые другие умлауты с немецкого, шведского и др. Языков.

Мне нужно это NSString преобразовано в:

const char* cString = [header cStringUsingEncoding: NSASCIIStringEncoding];

Примечание: NSASCIIStringEncoding, NSMacOSRomanStringEncoding не работает.

Я тоже пробовал это:

const char *cString = [header UTF8String];

Не работает.

Может кто-нибудь помочь мне, пожалуйста? Это очень странно.

EDIT:

Под "не работает" я имею в виду, что если у меня есть эти символы: Input

Это выведет это: Output

Мне плевать на NSLog. Мне нужно, чтобы const char * для метода записи в PDF:

HPDF_Page_TextOut  (HPDF_Page    page, HPDF_REAL    xpos, HPDF_REAL    ypos, const char  *text)

1 Ответ

3 голосов
/ 01 февраля 2012

const char *cString = [header UTF8String] будет работать, но вы, вероятно, тестируете его с NSLog("%s, cString);.

NSLog не будет работать, потому что %s ожидает ASCII строка не UTF-8 .

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

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