UTF8String为相同的字符串objective-c提供不同的值

时间:2018-01-23 07:32:57

标签: objective-c utf-8 nsstring

我在条件中匹配字符串。两个字符串完全相同。我还修剪了所有空格和换行符。但是编译器说两者都不一样。

我进行了大量调查,然后确定两个字符串的UTF8String值都不同。

po otherPersonName
"76000 13590"

po [otherPersonName UTF8String]
"76000 13590"


po findPersonName
"76000 13590"

po [findPersonName UTF8String]
    "\xffffffc2\xffffffa076000\xffffffc2\xffffffa013590\xffffffe2\xffffff80\xffffffac"

我可以解释一下这个字符串的正确匹配吗。

1 个答案:

答案 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:几次调用来替换/删除它们。但是,如果还有其他空格字符,请查看其他方法来清理字符串 - 请参阅NSStringNSCharacterSetNSRegularExpression等。

HTH