japońskiej znaków (jak byłoby żadnych znaków międzynarodowych) zdecydowanie są problemem. Znaki dozwolone w adresach URL są dość ograniczone. Jeśli są obecne w łańcuchu, inicjator fail-in URL
zwróci nil
. Te znaki muszą być oznaczone symbolem%.
W dzisiejszych czasach użylibyśmy URLComponents
do zakodowania procentowego tego adresu URL. Np
var components = URLComponents(string: "https://www.googleapis.com/youtube/v3/search")!
components.queryItems = [
URLQueryItem(name: "part", value: "snippet,id"),
URLQueryItem(name: "maxResults", value: "50"),
URLQueryItem(name: "order", value: "viewCount"),
URLQueryItem(name: "q", value: "ポケモンGO"),
URLQueryItem(name: "key", value: apikey)
]
components.percentEncodedQuery = components.percentEncodedQuery?.replacingOccurrences(of: "+", with: "%2B") // you need this if your query value might have + character, because URLComponents doesn't encode this like it should
let url = components.url!
do szybkiej odpowiedzi 2 z ręcznym kodowania procent patrz prior revision of this answer.
Przydatne uwagi: jeśli znasz ludzi, którzy zajmują się Twoim materiałem, poproś ich o zaniechanie. – halfer
Więc Pokemon GO wyprzedził również przepełnienie stosu :-) –
Możesz odwołać się do tego http://stackoverflow.com/questions/32064754/how-to-use-stringbyaddingpercentencodingwithallowedcharples-for-a-url-in-swi –