将带有变音符号的NSString转换为const char *

时间:2012-02-01 18:29:28

标签: encoding nsstring char diacritics

我看了几个小时才解决这个问题,但一无所获。对不起,如果答案是在互联网上的某个地方,我真的找不到它。

我有NSString *header = @"ästrç";或其他来自德语,瑞典语等语言的变音符号。

我需要将此NSString转换为:

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

注意:NSASCIIStringEncodingNSMacOSRomanStringEncoding无效。

我也试过这个:

const char *cString = [header UTF8String];

不工作。

是的,有人能帮帮我吗?这很奇怪。

编辑:

通过“不工作”我的意思是,如果我有这些字符: Input

它将输出: Output

我不关心NSLog。我需要 const char * 作为用PDF写的方法:

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

1 个答案:

答案 0 :(得分:3)

const char *cString = [header UTF8String]可以使用,但您可能正在测试它 NSLog("%s, cString);

NSLog不起作用,因为%s期待 ASCII 字符串而不是 UTF-8

详细信息:convert NSString to const char *