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)
我从我的服务器响应中得到 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)