字符串中奇怪的不可见字符导致 NSURL 失败
Strange Invisible Character in String causing NSURL to fail
我有一个字符串到数字的问题,需要几天时间才能解决。所以这一切都始于我的应用程序,涉及从地址簿中获取 phone 号码并拨打电话。一切正常,直到我注意到一些 phone 数字导致我的程序崩溃。
一段时间后,我终于发现他们正在为其中包含 space 的 phone 数字崩溃,这最终是有道理的,因为即使它是 phone我正在使用 NSURL 调用 "tel://(555) 555 5555" 并且在它之间有一个 space 会使 URL 无效,这会导致我的程序崩溃。
现在我很高兴我解决了第二个问题,并决定做一个简单的字符替换,用“-”替换所有的白色space。这适用于我测试过的测试字符串,一切看起来都很好。我决定将其连接回我的代码,然后我的程序仍然崩溃。
然后我进行了一些调试并注意到即使我的测试用例有效,我从 iOS 通讯录中提取的 phone 号码也没有替换白色 space。似乎用于 space 出 phone 数字的任何字符都不是白色 space 或者至少它不是白色 space 我可以简单地输入这个 -> “”
知道如何解决这个问题吗?要么 (1) 知道这个不可见字符到底是什么并替换它,要么 (2) 有没有办法只提取 phone 数字作为所有数字而不是额外的字符“+(.)-”或任何这里有选项吗?
您必须使用 .stringByAddingPercentEscapesUsingEncoding 来转换特殊字符。
let myLink = "http://google.com"
let myUrl = NSURL(string: myLink.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)!)!
我有一个字符串到数字的问题,需要几天时间才能解决。所以这一切都始于我的应用程序,涉及从地址簿中获取 phone 号码并拨打电话。一切正常,直到我注意到一些 phone 数字导致我的程序崩溃。
一段时间后,我终于发现他们正在为其中包含 space 的 phone 数字崩溃,这最终是有道理的,因为即使它是 phone我正在使用 NSURL 调用 "tel://(555) 555 5555" 并且在它之间有一个 space 会使 URL 无效,这会导致我的程序崩溃。
现在我很高兴我解决了第二个问题,并决定做一个简单的字符替换,用“-”替换所有的白色space。这适用于我测试过的测试字符串,一切看起来都很好。我决定将其连接回我的代码,然后我的程序仍然崩溃。
然后我进行了一些调试并注意到即使我的测试用例有效,我从 iOS 通讯录中提取的 phone 号码也没有替换白色 space。似乎用于 space 出 phone 数字的任何字符都不是白色 space 或者至少它不是白色 space 我可以简单地输入这个 -> “”
知道如何解决这个问题吗?要么 (1) 知道这个不可见字符到底是什么并替换它,要么 (2) 有没有办法只提取 phone 数字作为所有数字而不是额外的字符“+(.)-”或任何这里有选项吗?
您必须使用 .stringByAddingPercentEscapesUsingEncoding 来转换特殊字符。
let myLink = "http://google.com"
let myUrl = NSURL(string: myLink.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)!)!