从本机联系人复制号码会产生奇怪的结果

Copying a number from native contacts gives weird results

我从本机地址簿中复制了一个号码,它的开头和结尾可能有 UTF-8 字符

NSString *phoneNumber = @"‭+488778689898‬";
NSLog(@"phonenumber.length --> %lu", (unsigned long)phoneNumber.length); //Prints 15
BOOL hasPlusPrefix = [phoneNumber hasPrefix:@"+"];
NSLog(@"hasPrefix -->%d", hasPlusPrefix); // Prints 0

当我使用它显示的调试器调试数字时

如何从我的 NSString 中删除前面和结尾的字符?

谢谢

您在字符串中看到的代码用于处理文本方向。 \U202d 是 "LEFT-TO-RIGHT OVERRIDE" 字符,\U202c 是 "POP DIRECTIONAL FORMATTING" 字符。

您不能使用 whitespaceAndNewlineCharacterSet 删除它们,因为它们不是空格。但它们是控制代码,可以使用 controlCharacterSet.

删除它们
phoneNumber = [phoneNumber stringByTrimmingCharactersInSet:[NSCharacterSet controlCharacterSet]];