美文网首页生产力
unicode码\u202c\u202d

unicode码\u202c\u202d

作者: 是我拉叔 | 来源:发表于2018-08-14 17:28 被阅读996次

公司新上线的iOS APP账号注册是手机号码,前段时间有客户反应登录不上,相同的账号反复测试都能登录。昨天登录别人的账号时候直接从iPhone通讯录里复制粘贴了手机号码,登录失败,手动输入,登录成功。

一定是复制粘贴这里出问题了,打印log,账号密码看不出异常,NSString转换NSURL结果是null,怀疑手机号码复制的时候是Unicode引起的故障。

debug模式发现手机号 String.lengh :13,数来数去手机号明明是11位数啊,再往下一看,问题找到了,手机号头尾多了奇怪的东西。

搜了一些,网上找到有人遇到同样的问题,看这里,并提供了解决办法如下:

1.既然有这两个奇怪的东西,那就把这个去掉。首先知道这两个东西是啥?(找了资料说这个属于不显示的unicode码所以可以看到界面上显示时正常的但位数就不对)。

2.如何去掉

a.字符替换(发现@"\\p{Cf}"属于不显示的uicode的一个总称:\p{Cf} or \p{Format}: invisible formatting indicator.)

[str stringByReplacingOccurrencesOfString:@"\\p{Cf}" withString:@"" options:NSRegularExpressionSearch range:NSMakeRange(0, str.length)];

b.过滤(运用类似正则的东西)

NSCharacterSet *characterSet = [NSCharacterSet characterSetWithCharactersInString:@"0123456789"];    NSCharacterSet *specCharacterSet = [characterSet invertedSet];    NSArray *strArr = [str componentsSeparatedByCharactersInSet:specCharacterSet];    return [strArr componentsJoinedByString:@""];

总结分析:

上面两个方法都可以解决上面的问题,但说下方法a就是仅仅针对不可见的unicode进行替换。

方法b的话只会显示[0-9]之间的数字,其它的字符也会过滤掉。

上面两个方法,我比较推崇a方法因为,它没有副作用,仅仅是去掉我们想去掉的。


参考: 

https://blog.csdn.net/lnking1992/article/details/80367924

http://www.fileformat.info/info/unicode/char/202c/index.htm

http://www.fileformat.info/info/unicode/char/202d/index.htm

相关文章

  • unicode码\u202c\u202d

    公司新上线的iOS APP账号注册是手机号码,前段时间有客户反应登录不上,相同的账号反复测试都能登录。昨天登录别人...

  • iOS开发-不可见字符的坑 \U202d

    从通讯录复制手机号粘贴到输入框中,最后拿到的的字符串会多出奇怪的unicode码\U202d(属于不显示的unic...

  • 字符串扩展

    字符串扩展 unicode支持\u{unicode码点} 表示unicode字符codePointAt() 字符码...

  • JavaScript中字符串与Unicode编码的互相转换

    字符串转unicode码"中".charCodeAt(0); // 20013 unicode码转字符中Stri...

  • Unicode

    专业术语 统一码/国际通用码(Unicode)统一码/国际通用码联盟(Unicode Consortium)字符编...

  • Unicode相关

    我对Unicode的所感所悟 Unicode是统一码,也称国际通用码。是由Unicode Consortium,即...

  • Unicode

    Unicode Unicode中文名为统一码或者国际通用码,为文字系统编码之业界标准,由Unicode Conso...

  • UNICODE字符集和代码点

    了解UNICODE之前需要知道ASCII码,扩展ASCII码 UNICODE代码表 这是一个有用的参考 http:...

  • Unicode

    统一码/国际通用码(Unicode)为文字系统数字编码之业界标准,由统一码/国际通用码联盟(Unicode Con...

  • Unicode

    统一码/国际通用码(Unicode)为文字系统数字编码之业界标准,由统一码/国际通用码联盟(Unicode Con...

网友评论

    本文标题:unicode码\u202c\u202d

    本文链接:https://www.haomeiwen.com/subject/stivbftx.html