Kullanıcının herhangi bir metni girebileceği bir ekran oluşturuyorum. Şimdi bu metin geçerli bir URL'ye dönüştürülmelidir. ipteDizgiyi URL hedefine dönüştür C
- (NSString *)urlencode {
NSMutableString *output = [NSMutableString string];
const unsigned char *source = (const unsigned char *)[self UTF8String];
int sourceLen = strlen((const char *)source);
for (int i = 0; i < sourceLen; ++i) {
const unsigned char thisChar = source[i];
if (thisChar == ' '){
[output appendString:@"+"];
} else if (thisChar == '.' || thisChar == '-' || thisChar == '_' || thisChar == '~' ||
(thisChar >= 'a' && thisChar <= 'z') ||
(thisChar >= 'A' && thisChar <= 'Z') ||
(thisChar >= '0' && thisChar <= '9')) {
[output appendFormat:@"%c", thisChar];
} else {
[output appendFormat:@"%%%02X", thisChar];
}
}
return output;
}
Örnek 1. CFURLCreateStringByAddingPercentEscapes
NSString *encodedString = (NSString *)CFURLCreateStringByAddingPercentEscapes(
NULL,
(CFStringRef)unencodedString,
NULL,
(CFStringRef)@"!*'();:@&=+$,/?%#[]",
kCFStringEncodingUTF8);
2. Kategori: Ben yığın taşması sorununun çok içine baktım ve şu kandırmaca çözüm ile geldi kullanıcı el koyarsa beyaz boşluk yerine metinde gerekli% 20 (örneğin) ve sonra yukarıdaki çözümlerden herhangi birini kullanırsak% 20,% 25'e dönüşür.
Sorunu nasıl düzeltebilirim? %
%25
için urlkodlamasi olacak
Bu sadece bir örnekti. Diğerleriyle nasıl başa çıkabilirim? Bu tür senaroileri işlemek ve dizeyi geçerli URL'ye dönüştürmek için zaten var mı? –