【问题标题】:Make C char array from NSString object in Obj-C从 Obj-C 中的 NSString 对象制作 C 字符数组
【发布时间】:2010-08-31 21:19:25
【问题描述】:

我想从 Obj-C 中的 NSString 对象创建一个 C 字符数组。

我的字符串是:

NSString *string = [[NSString alloc] initWithContentsOfURL:url usedEncoding:nil error:nil];

有人可以给我发一份工作代码示例吗?

提前致谢,

Sagiftw

【问题讨论】:

    标签: objective-c xcode string nsstring


    【解决方案1】:

    您可以使用UTF8String 方法:

    const char *str = [string UTF8String];
    

    【讨论】:

    • +1,但我不想要 UTF8String 编码,使用它会丢失希伯来字符!
    • 如果您不想要 UTF-8 编码,请使用 -cStringUsingEncoding: 并传递适当的编码。
    • 使用 UTF8String 不会丢失希伯来字符。 UTF-8 能够表示任何 Unicode 字符。如果您的希伯来语字符正在消失,则问题不在这里。
    • 如果我不需要 const 而只需要 char* 怎么办?
    【解决方案2】:
    NSData *data = [string dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
    
    void *bytes = [data bytes];
    

    (信用:NSString - Unicode to ASCII equivalent

    或者一行:

    void *bytes = [[string dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES] bytes];
    

    【讨论】:

    • @user318205:如果您不喜欢另一个答案,因为它丢失了希伯来语字符,那么您肯定不会喜欢这个答案,因为您只会得到一组 ASCII 字符。 ASCII 中没有希伯来语。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-24
    • 1970-01-01
    • 1970-01-01
    • 2021-05-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多