| 14 | | NSString* s = (NSString*)CFURLCreateStringByAddingPercentEscapes(NULL, (CFStringRef)self, NULL, NULL, kCFStringEncodingUTF8); |
| 15 | | return [s autorelease]; |
| | 14 | const char* p = [self UTF8String]; |
| | 15 | NSMutableString* result = [NSMutableString string]; |
| | 16 | |
| | 17 | for (;*p ;p++) { |
| | 18 | unsigned char c = *p; |
| | 19 | if ('0' <= c && c <= '9' || 'a' <= c && c <= 'z' || 'A' <= c && c <= 'Z' || c == '-' || c == '_') { |
| | 20 | [result appendFormat:@"%c", c]; |
| | 21 | } else { |
| | 22 | [result appendFormat:@"%%%02X", c]; |
| | 23 | } |
| | 24 | } |
| | 25 | return result; |