Objective-c iPhone yüzde bir dize kodlamak?
Yüzde objective-c nasıl bu mektuplar için özel olarak kodlanmış bir dize, almak istiyorum?
Reserved characters after percent-encoding
! * ' ( ) ; : @ & = $ , / ? # [ ]
! * ' ( ) ; : @ & = + $ , / ? # [ ]
Bu dize ile test ve eğer iş yaparsam bakın:
myURL = @"someurl/somecontent"
Dize gibi görünmek istiyorum:
myEncodedURL = @"someurl/somecontent"
Ama çalışmıyor stringByAddingPercentEscapesUsingEncoding: NSASCIIStringEncoding
ile zaten denedim, sonuç yine özgün dize aynıdır. Tavsiye lütfen.
CEVAP
İOS 7 SDK şimdi tüm karakterler belirli izinli olanlar hariç kaçtı istediğinizi belirtin izin yokstringByAddingPercentEscapesUsingEncoding
daha iyi bir alternatif vardır. Eğer kesimlerinde URL kadar bina varsa: iyi çalışıyor
NSString * unescapedQuery = [[NSString alloc] initWithFormat:@"?myparam=%d", numericParamValue];
NSString * escapedQuery = [unescapedQuery stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSString * urlString = [[NSString alloc] initWithFormat:@"http://ExampleOnly.com/path.ext%@", escapedQuery];
URL diğer parçaları değişkenler olacak daha az sıklıkta olsa da, bu NSURLUtilities kategorisinde sabitleri vardır:
[NSCharacterSet URLHostAllowedCharacterSet]
[NSCharacterSet URLUserAllowedCharacterSet]
[NSCharacterSet URLPasswordAllowedCharacterSet]
[NSCharacterSet URLPathAllowedCharacterSet]
[NSCharacterSet URLFragmentAllowedCharacterSet]
[NSCharacterSet URLQueryAllowedCharacterSet]
içerirtümkarakterleri izin sorgu bölümü URL (kısmı ile başlayan ?
önce #
bir parça varsa) dahil ?
&
=
karakterler, kullanılan sınırlandırmak için parametre adları ve değerleri. Sayısal değer ile sorgu parametreleri için, bu karakterleri herhangi bir değişken sorgu dizesi oluşturmak için kullanılan değerleri dahil olabilir. Bu durumda, herbölümsorgu dizesi kaçmış olmalı, biraz daha fazla çalışma gerektirir.
NSMutableCharacterSet * URLQueryPartAllowedCharacterSet; // possibly defined in class extension ...
// ... and built in init or on first use
URLQueryPartAllowedCharacterSet = [[NSCharacterSet URLQueryAllowedCharacterSet] mutableCopy];
[URLQueryPartAllowedCharacterSet removeCharactersInString:@"& =?"]; // &, =, ?
// then escape variables in the URL, such as values in the query and any fragment:
NSString * escapedValue = [anUnescapedValue stringByAddingPercentEncodingWithAllowedCharacters:URLQueryPartAllowedCharacterSet];
NSString * escapedFrag = [anUnescapedFrag stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLFragmentAllowedCharacterSet]];
NSString * urlString = [[NSString alloc] initWithFormat:@"http://ExampleOnly.com/path.ext?myparam=%@#%@", escapedValue, escapedFrag];
NSURL * url = [[NSURL alloc] initWithString:urlString];
unescapedValue
tüm URL, geri arama ya da yönlendirme gibi bile olabilir:
NSString * escapedCallbackParamValue = [anAlreadyEscapedCallbackURL stringByAddingPercentEncodingWithAllowedCharacters:URLQueryPartAllowedCharacterSet];
NSURL * callbackURL = [[NSURL alloc] initWithString:[[NSString alloc] initWithFormat:@"http://ExampleOnly.com/path.ext?callback=%@", escapedCallbackParamValue]];
Not: kullanım yolu için daha fazla yüzde kaçar katacak çünkü bir sorgu dizesi ile bir URL için NSURL initWithScheme:(NSString *)scheme host:(NSString *)host path:(NSString *)path
Yok.
Objective c boolean dize biçimlendirme...
Yüzde kodlamak için nasıl python ile u...
İPhone uygulamam eğer düşük seviye kod...
Kullanım " için tamam mı;klasik" ...
Bir AJAX isteği için jQuery bir dize U...