我在条件中匹配字符串。两个字符串完全相同。我还修剪了所有空格和换行符。但是编译器说两者都不一样。
我进行了大量调查,然后确定两个字符串的UTF8String
值都不同。
po otherPersonName
"76000 13590"
po [otherPersonName UTF8String]
"76000 13590"
po findPersonName
"76000 13590"
po [findPersonName UTF8String]
"\xffffffc2\xffffffa076000\xffffffc2\xffffffa013590\xffffffe2\xffffff80\xffffffac"
我可以解释一下这个字符串的正确匹配吗。
答案 0 :(得分:0)
在findPersonName
中,在开头和数字之间有不间断的空格(U + 00A0,UTF-8 C2 A0,其中po显示为\xffffffc2\xffffffa0
),以及POP方向格式化(U + 202C,UTF-8 E2 80 AC,\xffffffe2\xffffff80\xffffffac
)最后(表示该值来自带有混合脚本的较大文本,从左到右和从右到左)。
如果这些是仅字符可能会发生,可能会使用stringByReplacingOccurrencesOfString:withString:
几次调用来替换/删除它们。但是,如果还有其他空格字符,请查看其他方法来清理字符串 - 请参阅NSString
,NSCharacterSet
,NSRegularExpression
等。
HTH