2016-07-13 4 views
0

Я получаю URL из моего ответа сервера как: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

+1

Почему вы используете «stringByAddingPercentEncodingWithAllowedCharacters», когда вы уже закодированный строку. Просто используйте простой String append. – WasimSafdar

ответ

2

Ваш 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)