带有 é,è ... 和多个号码的地址簿名称

Address Book name with é,è ... and multiple number

我想在 NSDictionary.Address Book 中存储联系人。

我成功登录名字+联系人的姓氏并存储在NSDictionary"name"。但是当名字或姓氏中有笑脸或像“é”或“è”这样的重音时,就会给我这样的错误:"Name = "Manon \Ud83d\Udc9c (null)";"

第二个错误:当联系人有多个号码时,将号码存储在我的 NSDictionary "number" 但给我这样的错误 "Number = "06\U00a067\U00a054\U00a069\U00a034";" 也许使用某些东西只搜索手机号码(在法国以“06”或“+336”开头)?并将其添加到 NSDictionary "number" ?

我该如何解决?

这是我在 ViewDidLoad 中的代码:

//ADDRESS BOOK
ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(NULL, NULL);
if (addressBook != NULL) {
    ABAddressBookRequestAccessWithCompletion(addressBook, ^(bool granted, CFErrorRef error) {
        if (granted)
        {

            NSArray *arrayOfPeople = (__bridge_transfer NSArray *)ABAddressBookCopyArrayOfAllPeople(addressBook);

            //The array in which the first names will be stored as NSStrings
         //   self.allContact = [[NSMutableArray alloc] init];

            for(NSUInteger index = 0; index <= ([arrayOfPeople count]-1); index++){

                ABRecordRef person = (__bridge ABRecordRef)[arrayOfPeople objectAtIndex:index];
                NSString *currentFirstName = (__bridge_transfer NSString *)ABRecordCopyValue(person, kABPersonFirstNameProperty);
                NSString *currentLastName = (__bridge_transfer NSString *)ABRecordCopyValue(person, kABPersonLastNameProperty);
                NSString *allName = [NSString stringWithFormat:@"%@ %@", currentFirstName, currentLastName];
                [self.allContact addObject: allName];
                                        self.contact = [NSMutableDictionary
                                                                        dictionaryWithDictionary:@{
                                                                                                   @"Name" : @"Number"
                                                                                                   }];
                                        [self.contact setObject:allName forKey:@"Name"];
                ABMultiValueRef phones = ABRecordCopyValue(person, kABPersonPhoneProperty);
                                        if (phones != NULL)
                                        {
                                            for (NSInteger index = 0; index < ABMultiValueGetCount(phones); index++)
                                            {

                                                NSString *phone = CFBridgingRelease(ABMultiValueCopyValueAtIndex(phones, index));
                                                [self.contact setObject:phone forKey:@"Number"];
                                            }
                                        }

                NSLog(@"%@", self.contact);
            }

            //OPTIONAL: The following line sorts the first names alphabetically
            NSArray *sortedFirstNames = [self.allContact sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)];
          //  NSLog(@"%@", sortedFirstNames);


        }
    });
}

"Name = "Manon \Ud83d\Udc9c (null)";"
"Number = "06\U00a067\U00a054\U00a069\U00a034"

这不是错误。 \U00a067 等都是unicode符号。控制台只是不知道如何显示此类符号(“é”或“è”),这就是它显示 unicode 符号的原因。
但是在应用程序中,这些符号将按预期显示。
我一直对俄罗斯角色有同样的行为。