在iOS中将NSString转换为unichar

10

我在stackoverflow上看到了一些将unichar转换为NSString的问题,但现在我想做相反的操作。

我该怎么做?

需要一些指导..谢谢

例如,我有一个字符串数组:[@"o",@"p",@"q"];

这些是字符串。如何将它们转换回unichar?


你是指一个 unichar 数组吗?NSString 上有一个方法可以做到这一点。 - jscs
可能是这个问题的重复。 - bdesham
2个回答

13
只要第一个字符不是实际上的两个组合字符(换句话说,只要该字符的 Unicode 值不大于 \UFFFF),以下内容将起作用:
unichar ch = [someString characterAtIndex:0];

2
您可以将其转换为NSData缓冲区:
if ([string canBeConvertedToEncoding:NSUnicodeStringEncoding]) {
    NSData * data = [string dataUsingEncoding:NSUnicodeStringEncoding];
    const unichar* const ptr = (const unichar*)data.bytes;
    ...
}

1
这样做是否产生与仅转换[string cStringUsingEncoding:NSUnicodeStringEncoding]的返回值有所不同的结果? - Seamus Campbell
@SeamusCampbell,NSData 变量未终止。 - justin
注意:这会添加一个BOM,可能需要也可能不需要! - ceztko

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接