Mel*_*emi 10 encoding cocoa-touch nsstring
哪种NSString编码方法将百分比(&)字符正确地转义为%26?
stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding
Run Code Online (Sandbox Code Playgroud)
获取空格(%20)和其他坏人但忽略了&符号!?!
Tho*_*ert 23
以下是从Bagonca博客中对您的NSStrings进行url编码的问题的一个很好的解决方案:
+ (NSString *)urlEncodeValue:(NSString *)str
{
NSString *result = (NSString *)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)str, NULL, CFSTR(":/?#[]@!$&’()*+,;="), kCFStringEncodingUTF8);
return [result autorelease];
}
Run Code Online (Sandbox Code Playgroud)
添加CFBridgingRelease(ARC兼容性.
+ (NSString *)urlEncodeValue:(NSString *)str
{
NSString *result = (NSString *)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)str, NULL, CFSTR(":/?#[]@!$&’()*+,;="), kCFStringEncodingUTF8));
return result;
}
Run Code Online (Sandbox Code Playgroud)
接受的答案不太正确我不认为,你需要在调用addPercentEscapesAndReplaceAmpersand 后处理字符串
+ (NSString *) addPercentEscapesAndReplaceAmpersand: (NSString *) stringToEncode
{
NSString *encodedString = [stringToEncode stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding];
return [encodedString stringByReplacingOccurrencesOfString: @"&" withString: @"%26"];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15989 次 |
| 最近记录: |