【发布时间】:2016-02-07 03:16:06
【问题描述】:
String 百分比转义方法的签名是:
func addingPercentEncoding(withAllowedCharacters: CharacterSet)
-> String?
(这是 Swift 2 中的 stringByAddingPercentEncodingWithAllowedCharacters。)
为什么这个方法返回一个可选项?
文档说“如果无法进行转换”,该方法会返回 nil,但不清楚在什么情况下转义转换可能会失败:
使用 UTF-8 对字符进行转义,这是一种完整的 Unicode 编码。任何有效的 Unicode 字符都可以使用 UTF-8 进行编码,因此可以转义。
我认为该方法可能对允许的字符集和用于转义的字符之间的不良交互进行了某种健全性检查,但事实并非如此:无论允许的字符集是否chars 包含“%”,如果允许的字符集为空也成功。
就目前而言,非可选返回值似乎强制进行无意义的错误检查。
【问题讨论】:
标签: swift cocoa unicode utf-8 url-encoding