使用するiPhoneアプリケーションにURLがあります。しかし問題は、URLにいくつかのスペースがあることです。スペースを「%20」に置き換えたい。 stringByReplacingOccurencesOfString
メソッドとstringByAddingPercentEscapesUsingEncoding
メソッドがあることは知っています。私もそれらを使用しました。しかし、彼らは私のために働いていません。スペースはいくつかの異常な値に置き換えられます。
これらのメソッドをNSString
のインスタンスに適用しています。
URLからスペースを置き換えるための正しい形式は次のとおりです。
Swift 4.2、Swift 5
var urlString = originalString.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)
Swift 4
var urlString = originalString.addingPercentEncoding(withAllowedCharacters: CharacterSet.urlQueryAllowed)
目的C
NSString *urlString;//your url string.
urlString = [originalUrl stringByReplacingOccurrencesOfString:@" " withString:@"%20"];
または
urlString = [originalUrl stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
iOS 9以降
urlString = [originalUrl stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
Swift 2.
let originalUrl = "http://myurl.com/my photo.png"
let urlNew:String = urlReq.stringByAddingPercentEncodingWithAllowedCharacters( NSCharacterSet.URLQueryAllowedCharacterSet())!
出力:
http://myurl.com/my%20photo.png
Swiftでの出現を置き換えるには:
let updatedUrl = originalUrl.addingPercentEncoding(withAllowedCharacters: NSCharacterSet.urlQueryAllowed)
Swift 4
空のスペースをReplaceingOccurrencesメソッドで置き換える別の方法:
let yourString = "http://myurl.com/my photo.png"
let urlNew:String = yourString.replacingOccurrences(of: " ", with: "%20").trimmed
空のスペース( "")が '%20'に置き換えられます
スウィフト5
var urlString = originalString.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)
これがうまくいくことを願って
let url = "https:youtube.56432fgrtxcvfname=xyz&sname=tuv"
let urlNew:String = url.replacingOccurrences(of: " ", with: "%20")
Alamofire.request(urlNew, method: .get, headers: headers).responseJSON{
response in
print(response)
}
URLからすべての種類のスペースを削除します。
var urlString :String = originalUrl.addingPercentEncoding(withAllowedCharacters: NSCharacterSet.urlQueryAllowed)!
A Swift 4ソリューション。文字列を渡すだけで、スペースが%20で埋められ、文字列の先頭に "http://"が追加されます。かなり甘いです!
URL(fileURLWithPath: String)