URL swift ios 中的编码问题

URL Encoding issue in swift ios

我从我的服务器响应中得到 url 作为:

https://baseURL/The+Man+in+the+High+Castle+Official+Trailer+%E2%80%93+2+th.m3u8

我正在编码为:

 videoURL = videoURL.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet())!

但 avplayer 无法播放这个特定的 url。 编码 URL

似乎有些问题

您的 URL 已经进行了百分比编码。

如果再次编码,百分比部分将被编码两次,给出无效的URL。

您可以通过从 URL 中删除百分比编码并重新设置来看到这一点:

let base = "https://baseURL/The+Man+in+the+High+Castle+Official+Trailer+%E2%80%93+2+th.m3u8"
let decoded = base.stringByRemovingPercentEncoding!
print(decoded)
let encoded = decoded.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLFragmentAllowedCharacterSet())!
print(encoded)