53

iPhoneアプリケーションに使用するURLがあります。ただし、問題は、URLにスペースが含まれていることです。スペースを「%20」に置き換えたい。stringByReplacingOccurencesOfStringstringByAddingPercentEscapesUsingEncodingメソッドがあることを知っています。私も使ったことがあります。しかし、彼らは私のために働いていません。スペースはいくつかの異常な値に置き換えられます。

これらのメソッドをのインスタンスに適用していますNSString

4

11 に答える 11

154

URLからスペースを置き換えるための正しい形式は次のとおりです。

Swift 4.2、Swift 5

var urlString = originalString.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)

スウィフト4

var urlString = originalString.addingPercentEncoding(withAllowedCharacters: CharacterSet.urlQueryAllowed)

Objective C

NSString *urlString;//your url string.

urlString = [originalUrl stringByReplacingOccurrencesOfString:@" " withString:@"%20"];

また

urlString = [originalUrl stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

iOS9以降

urlString = [originalUrl stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
于 2011-03-04T09:55:35.583 に答える
9

Swift 2.0

let originalUrl = "http://myurl.com/my photo.png"
let urlNew:String = urlReq.stringByAddingPercentEncodingWithAllowedCharacters( NSCharacterSet.URLQueryAllowedCharacterSet())! 

出力:

http://myurl.com/my%20photo.png
于 2015-10-20T05:20:30.907 に答える
6

SWIFT 3での発生を置き換えるには:

let updatedUrl = originalUrl.addingPercentEncoding(withAllowedCharacters: NSCharacterSet.urlQueryAllowed)
于 2017-06-27T08:13:29.920 に答える
4

スウィフト4

空のスペースをreplaceingOccurrencesメソッドで置き換える別の方法:

let yourString = "http://myurl.com/my photo.png"
let urlNew:String = yourString.replacingOccurrences(of: " ", with: "%20").trimmed 

これにより、空のスペース( "")が'%20'に置き換えられます。

于 2017-02-08T20:15:42.013 に答える
3

スウィフト5

var urlString = originalString.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)
于 2019-04-30T07:46:29.930 に答える
1

Swift 5.3、文字列のスペースを空ける、

let str = "  www.test.com  "
let trimmed = str.trimmingCharacters(in: .whitespacesAndNewlines)
print(str) // "www.test.com" 
于 2020-06-19T20:51:25.027 に答える
0
var urlString :String = originalUrl.addingPercentEncoding(withAllowedCharacters: NSCharacterSet.urlQueryAllowed)!
于 2018-06-12T03:16:32.357 に答える
0

これがうまくいくことを願っています

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からすべての種類のスペースが削除されます。

于 2019-09-26T22:41:01.213 に答える
-1

SWIFT 3.1

空のスペースをreplaceingOccurrencesに置き換える簡単な方法:

URL = URL.replacingOccurrences(of: " ", with: "", options: .literal, range: nil)
于 2017-08-17T10:04:35.693 に答える
-1

Swift 4、iOS-9

let **urlSearchVal**:String = "top 10 movies"     
let urlString = 

    "https://www.googleapis.com/youtube/v3/search?part=snippet&q=\(urlSearchVal)&key=......&type=video"   
//replace ...... above with your youtube key   
// to ignoring white space in search  
        let UrlString :String = urlString.addingPercentEncoding(withAllowedCharacters: NSCharacterSet.urlQueryAllowed)!
于 2017-11-05T01:38:48.633 に答える
-1

Swift4ソリューション。文字列を通過するだけで、スペースが%20で埋められ、文字列の先頭に「http://」が追加されます。かなり甘い!

URL(fileURLWithPath: String) 
于 2019-03-11T12:49:07.013 に答える