IOS什么是处理INDIVIDUAL unicode字符的最佳类型? wchar_t? UTF32Char?

时间:2015-01-08 18:11:16

标签: ios objective-c unicode

我有一组遗留数据,包括基于struct形成的单个Unicode字符:

struct LocalGrRec{
    wchar_t     cBegin;
    int         x2;
    wchar_t     cEnd;
    in          x2;
};

并且典型记录看起来像这样,即包括长和短Unicode字符

{L'a', 0, L'¥', 3}

我可以更改结构,以便更容易处理将这些字符读入字符变量:

wchar_t   c = rec.cBegin; 
// or
UTF32Char c = rec.cBegin; 

哪一个(或者我不知道的另一个选择)会使它更容易处理。请注意,我需要将它们作为单独的字符处理,但最终我需要将它们包含在NSString中。

什么解决方案给了我最大的灵活性和最小的痛苦?

我如何将该字符读入NSString?

由于

编辑: 我需要用它来组合NSString,而不是相反。 有了unichar,问题出在这里:

unichar c = L'•'; 
NSLog(@"%c", c);     // produces: (") wrong character, presumably the first half of '•'
NSLog(@"%C", c);     // produces: (\342\200)

1 个答案:

答案 0 :(得分:0)

我认为你正在寻找这种方法:

[NSString stringWithCharacters:(const unichar*) length:(NSUInteger)];

只需传递一个unichars数组和一个长度,它会给你一个NSString返回

unichar list[3] = {'A', 'B', 'C'};
NSString *listString = [NSString stringWithCharacters:list length:3];
NSLog(@"listString: %@", listString);