2010-08-09 6 views
19

Tôi có một URL trong một ứng dụng iPhone để làm việc. Nhưng vấn đề là nó có một số khoảng trống trong URL. Tôi muốn thay thế các khoảng trống bằng '% 20'. Tôi biết rằng có các phương pháp stringByReplacingOccurencesOfStringstringByAddingPercentEscapesUsingEncoding. Tôi cũng đã sử dụng chúng. Nhưng họ không làm việc cho tôi. Các khoảng trống được thay thế bằng một số giá trị khác thường.Thay thế các khoảng trống trong URL

Tôi đang áp dụng các phương pháp đó trên một phiên bản NSString.

+0

bạn có thể đăng một ví dụ mã không? –

+3

Kiểm tra bài đăng này tại đây: http: // stackoverflow.com/questions/695911/question-about-character-of-nsstring-invalid-in-url-trên-iphone Câu trả lời: NSString * escapedUrl = [originalUrl stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]; – Tieme

Trả lời

61

Định dạng đúng để thay thế không gian từ url là:

Objective C

NSString *urlString;//your url string. 

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

hoặc

urlString = [originalUrl stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 

iOS 9 và sau đó

urlString = [originalUrl stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]]; 

Swift:

var originalUrl = "https://google.co.in" 
var urlString :String = originalUrl.stringByReplacingPercentEscapesUsingEncoding(NSUTF8StringEncoding)! 

ios 9 và sau đó

var urlString :String = originalUrl.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet())! 

Swift 4

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

không hoạt động trong swift –

+0

@RaquibulIslam Tôi đã chỉnh sửa câu trả lời của mình, vui lòng kiểm tra ngay – Raj

+1

Tôi nghĩ stringByReplacingPercentEscapesUsingEncoding() không còn được dùng nữa. Thay vào đó, chúng tôi có thể sử dụng stringByRemovingPercentEncoding –

9

Swift 2.0

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

Output:

http://myurl.com/my%20photo.png 
1

Swift 3

Một cách khác để thay thế một không gian trống với phương pháp replacingOccurrences:

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

Điều đó sẽ thay thế các không gian trống rỗng ("") với '% 20'

4

Để thay thế điều xảy ra trong SWIFT 3:

let updatedUrl = originalUrl.addingPercentEncoding(withAllowedCharacters: NSCharacterSet.urlQueryAllowed) 
-1

SWIFT 3,1

Cách đơn giản để thay thế một không gian trống với replacingOccurrences:

URL = URL.replacingOccurrences(of: " ", with: "", options: .literal, range: nil) 
-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)! 
+0

chào mừng bạn đến với SO. hãy cải thiện chất lượng của bạn trả lời –