8

我正在使用 GNUstep shell 来编写objective-c。我能够将字符串转换为字符集。但无法在控制台中打印转换后的字符集。请告诉我打印它的方法。提前致谢。

4

1 回答 1

18

这将执行 unicode 中的前 65536 个字符,这适用于大多数情况。我相信 unicode 可以更高(2 ^ 32?),但这需要更长的时间来记录。

+ (void) logCharacterSet:(NSCharacterSet*)characterSet
{
    unichar unicharBuffer[20];
    int index = 0;

    for (unichar uc = 0; uc < (0xFFFF); uc ++)
    {
        if ([characterSet characterIsMember:uc])
        {
            unicharBuffer[index] = uc;

            index ++;

            if (index == 20)
            {
                NSString * characters = [NSString stringWithCharacters:unicharBuffer length:index];
                NSLog(@"%@", characters);

                index = 0;
            }
        }
    }

    if (index != 0)
    {
        NSString * characters = [NSString stringWithCharacters:unicharBuffer length:index];
        NSLog(@"%@", characters);
    }
}

有一些看起来很有趣的结果,例如这里是 20 个字符的示例punctuationCharacterSet

༅༆༇༈༉༊་༌།༎༏༐༑༒༔༺༻༼༽྅

于 2013-08-05T22:39:38.843 回答