2012-02-01 570 views
1

我用了几个小时来解决这个问题,并且什么都没发现。对不起,如果答案是在互联网上的某个地方,我真的找不到它。将带变音符号的NSString转换为常量字符*

我有一个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) 
+2

最后一个(' - [NSString UTF8String]')应该可以工作。定义“不工作”。 – 2012-02-01 18:31:29

回答

3

const char *cString = [header UTF8String]会的工作,但你可能与 NSLog("%s, cString);测试它。

的NSLog将无法正常工作,因为%s期待ASCII字符串UTF-8

详情:convert NSString to const char *

+0

我已经看到,以及其他许多帖子。只是它不适合我需要的东西。上面我的编辑。 – 2012-02-01 19:47:39

+2

@benyboariu你将不得不学习'HPDF_Page_TextOut'函数接受的编码。 – Krizz 2012-02-01 19:53:43

+0

我不知道我的想法在哪里。当然,我必须看看该方法接受的编码。现在工作。非常感谢你。 – 2012-02-02 03:28:24