Swift 4 如何从由 URLComponent() 创建的 URL 中删除 %EF%BB%BF?

Swift 4 How to remove %EF%BB%BF from URL created from URLComponent()?

我尝试从组件

创建 URL
var com =  URLComponents()
com.scheme = "http"
com.host = "192.168.1.99"
com.port = 77
com.path = "/api/dosomething/55"

print("SHOW ME URl =  \(com.url!))")

我得到的是这样的

http://192.168.1.99:77/%EF%BB%BFapi/dosomething/55

总是得到 %EF%BB%BF,在这种情况下 url 变得无效

我想从 URL

中删除 %EF%BB%BF

我该怎么做?

直接回答你的问题

你可以用任何东西替换这个模式:

let theURL = "http://192.168.1.99:77/%EF%BB%BFapi/dosomething/55"
let partToRemove = "%EF%BB%BF"
let clearURL = theURL.replacingOccurrences(of: partToRemove, with: "")
print(clearURL)

这是 UTF-8 BOM 的 URL 编码,可能是某些文本编辑器对 URL 的处理造成的。 Trim 路径字符串中的空格:

var com =  URLComponents()
com.scheme = "http"
com.host = "192.168.1.99"
com.port = 77
let path = //The path
let trimmedPath = path.trimmingCharacters(in: .whitespaces)
com.path = trimmedPath

print("SHOW ME URl =  \(com.url!)")

在 utf-8 中,'ZERO WIDTH NO-BREAK SPACE' 被编码为 0xEF 0xBB 0xBF