IOS 处理单个 unicode 字符的最佳类型是什么?wchar_t ?UTF32字符?



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

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

典型的记录如下所示,即包括长 Unicode 字符和短 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: (342200)

我认为您正在寻找此方法:

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

只需向它传递一个 unichar 数组和一个长度,它就会给你一个 NSString 回来

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

相关内容

  • 没有找到相关文章

最新更新