Linux 与字符串removingPercentEncoding不一致的行为:
与Xcode 8附带的字符串实例方法Linux 与字符串removingPercentEncoding不一致的行为:,linux,swift,swift3,ibm-swift-sandbox,Linux,Swift,Swift3,Ibm Swift Sandbox,与Xcode 8附带的字符串实例方法removingPercentEncoding的版本相比,我发现开源版本Swift 3的行为不一致: let testString = "valid àæ" let escapedString = testString.removingPercentEncoding 在Xcode中,转义字符串的结果是“有效”。然而,Swift的开源版本返回了“validá”(缺少æ) 我遗漏了什么?这是由于一个错误导致的,CFStringGetLength会为非拉丁字符返
removingPercentEncoding
的版本相比,我发现开源版本Swift 3的行为不一致:
let testString = "valid àæ"
let escapedString = testString.removingPercentEncoding
在Xcode中,转义字符串
的结果是“有效”
。然而,Swift的开源版本返回了“validá”
(缺少æ
)
我遗漏了什么?这是由于一个错误导致的,
CFStringGetLength
会为非拉丁字符返回不正确的值\u CFStringCreateByAddingPercentEncodingWithAllowedCharacters
和\u CFStringCreateByRemovingPercentEncoding
现在已修复
这是由于一个错误造成的,
CFStringGetLength
会为非拉丁字符返回不正确的值\u CFStringCreateByAddingPercentEncodingWithAllowedCharacters
和\u CFStringCreateByRemovingPercentEncoding
现在已修复
值得注意的是,IBM Swift Sandbox运行的是Linux版本的Swift,这是与Xcode版本不同的实现。因此,它更有可能是“Linux vs.MacOS”而不是“Xcode vs.open source”。值得注意的是,IBM Swift Sandbox运行的是Linux版本的Swift,这与Xcode版本不同。因此,这更可能是“Linux vs.MacOS”的事情,而不是“Xcode vs.开源”的事情。