Tôi đang cố gắng mã hóa URL một chuỗi để tạo yêu cầu GET từ mục tiêu-c.URLKích hoạt một chuỗi với Objective-C
NSString *params = @"'Decoded data!'/foo.bar:baz";
NSRunAlertPanel(@"Error", [params urlEncoded], @"OK", nil, nil);
Đây là loại mở rộng NSString
-(NSString *) urlEncoded
{
NSString *encoded = (NSString *)CFURLCreateStringByAddingPercentEscapes(
NULL,
(CFStringRef)self,
NULL,
(CFStringRef)@"!*'\"();:@&=+$,/?%#[]% ",
kCFStringEncodingUTF8);
return encoded;
}
Vì vậy, lần đầu tiên tôi chạy nó tôi nhận được lại
1606410046ecoded 1606410784ata2270.000000foo.bar0X1.001716P-1042baz
từ hộp thoại.
Ngay sau khi tôi chạy nó một lần nữa tôi có được điều này
1606410046ecoded 1606410944ata227369374562920703448982951250259562309742470533728899744288431318481119278377104028261651081181287077973859930826299575521579020410425419424562236383226511593137467590082636817579938932512039895040.000000foo.bar0X1.66E6156303225P+771baz
Sau đó, nếu tôi chạy nó một lần nữa nó đi lại cho người đầu tiên. Nó thực sự kỳ lạ.
Nếu thông số được đặt thành @ "&" hoặc @ "" Tôi chỉ lấy lại "2" (w/o dấu ngoặc kép) trong hộp thoại.
Ngoài ra, có cách nào tôi có thể hiển thị dấu% trong hộp thoại cảnh báo không?
Cảm ơn
Tại sao các bạn gọi đó là hai lần và tại sao bạn không đăng nhập đầu ra của bạn thay vì đẩy nó vào một cảnh báo? –