, ancak bazı karakter için kör olmak, yani "&" veya görünüyor "?". Var olanı temel alarak özel bir NSCharacterSet'i nasıl oluşturabilirim?Özel bir NSCharacterSet nasıl oluşturulur? Ben bir ipe yüzde kodlama eklemek için <code>NSCharacterSet.URLQueryAllowedCharacterSet()</code> kullanıyorum
cevap
Yeni bir karakter kümesi oluşturmanın en tipik yolu, String
değerini kümenin tüm karakterleriyle birlikte vererek CharacterSet(charactersIn:)
kullanıyor.
var characterSet = CharacterSet.urlQueryAllowed
characterSet.insert(charactersIn: "?&")
, ayrıca Deneyebilirsin Objective-C and Swift URL encoding
Mükemmel çalışıyor, teşekkürler! Ama "ÄÖÜäöü" yi eklemeye çalıştığımda bunun bir etkisi yok mu? – ixany
@ mrtn.lxo Yorumunuza daha fazla bağlam eklemeniz gerekecek. Onları nasıl ekliyorsun? Daha sonra karakter seti ile ne yapıyorsun? – Sulthan
Sadece myCaracterSet.addCharactersInString ("Ä") kullanıyorum – ixany
not:
let characterSet = NSMutableCharacterSet() //create an empty mutable set
characterSet.formUnionWithCharacterSet(NSCharacterSet.URLQueryAllowedCharacterSet())
characterSet.addCharactersInString("?&")
veya basitçe Swift 3'te: Varolan kümeye bazı karakterler ekleme
kullanılarak elde edilebilir benim yöntemi:
let password = "[email protected]#$%^&*()-_abcdABCD1234`~"
// Swift 2.3
extension NSCharacterSet {
static var rfc3986Unreserved: NSCharacterSet {
let mutable = NSMutableCharacterSet()
mutable.formUnionWithCharacterSet(.alphanumericCharacterSet())
mutable.addCharactersInString("-_.~")
return mutable
}
}
let encoding = password.stringByAddingPercentEncodingWithAllowedCharacters(.rfc3986Unreserved)
// Swift 3
extension CharacterSet {
static var rfc3986Unreserved: CharacterSet {
return CharacterSet(charactersIn: "-_.~").union(.alphanumerics)
}
}
let encoding = password.addingPercentEncoding(withAllowedCharacters: .rfc3986Unreserved)
Print:
original -> [email protected]#$%^&*()-_abcdABCD1234`~
encoding -> %3F%2B%3D%21%40%23%24%25%5E%26%2A%28%29-_abcdABCD1234%60~
RFC 3986: Size `NSCharacterSet` mevcut oynamak imkanı vermelidir NSMutableCharacterSet`` de https://tools.ietf.org/html/rfc3986
bak. – Larme