用到转换的地方很多 方便记忆直接上方法
1 (1) NSString 转换成 base64编码
NSData * data = [ @" test string " dataUsingEncoding:NSUTF8StringEncoding];
NSString* newString = [data base64EncodedStringWithOptions:0];
如果字符串内有中文 需将 NSUTF8StringEncoding 换成下面的
NSStringEncoding testEncoding = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);
NSData * data = [ @" test string " dataUsingEncoding:testEncoding];
(2) base64 转换到NSString
NSData *data = [[NSData alloc] initWithBase64EncodedString:@"test base64 String " options:0];
NSString *string =[[NSString alloc] initWithData:dataencoding:NSUTF8StringEncoding];
2 NSString 转换 UTF8 URLEncode (常用在地址访问)
iOS 9 以前的方法不多说了 直接用 [@"test string" stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
iOS 9 以后用的方法是
NSString * string = [@"test string" stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSetURLQueryAllowedCharacterSet]];
在网上还看到了个在ASIHTTPRequest 里抽出的 工具方法 贴上备用
(NSString*)encodeURL:(NSString *)teststring
{
NSString *newString = NSMakeCollectable([(NSString *)CFURLCreateStringByAddingPercentEscapes(
kCFAllocatorDefault,
(CFStringRef)teststring, NULL, CFSTR(":/?#[]@!$ &'()*+,;=\"<>%{}|\\^~`"),
CFStringConvertNSStringEncodingToEncoding([self stringEncoding])) autorelease]);
if (newString) {
return newString;
}
return @"";
}
解决我的问题,也希望可以解决你的问题并给我一个大大的喜欢,如有不对,欢迎指正...
end!