6.将NSString转换成UTF8编码的NSString

来源:互联网 发布:去工业化知乎 编辑:程序博客网 时间:2024/04/30 01:56

在使用网络地址时,一般要先将url进行encode成UTF8格式的编码,否则在使用时可能报告网址不存在的错误,这时就需要进行转换。
1.转换函数:

NSString *urlString= [NSString stringWithFormat: @"http://www.baidu.com];NSString * encodedString = (NSString *) CFURLCreateStringByAddingPercentEscapes( kCFAllocatorDefault, (CFStringRef)urlString, NULL, NULL,  kCFStringEncodingUTF8);NSURL *url =[NSURL URLWithString:encodedString];//

2.通过 C 的字符串来转换

NSString utf8Str = @"http://www.baidu.com";NSString *unicodeStr = [NSString stringWithCString:[utf8Str UTF8String] encoding:NSUnicodeStringEncoding];//

3.NSURL 中的转换
有时候获取的url中的中文等字符是乱码,网页内容是乱码,需要进行一下转码才能正确识别NSString,可以用下面的方法:
- (nullable NSString *) stringByAddingPercentEscapesUsingEncoding:(NSStringEncoding)enc
- (nullable NSString *) stringByReplacingPercentEscapesUsingEncoding:(NSStringEncoding)enc

//1.创建 NSURL 对象//(1)获取 urlStringNSString *urlString = [NSString stringWithFormat: @"http://www.baidu.com"];//(2)编码转换//NSString *newStr = [urlString stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding];NSString *newStr = [urlString stringByReplacingPercentEscapesUsingEncoding: NSUTF8StringEncoding];NSURL *url = [NSURL URLWithString: newStr];//2.创建 NSURLRequeste 请求对象NSURLRequest *request = [NSURLRequest requestWithURL: url];//

4.以上的两种方法9.0中已经被弃用了, 可以使用一下的方法来代替:
- (nullable NSString ) stringByAddingPercentEncodingWithAllowedCharacters:(NSCharacterSet )allowedCharacters NS_AVAILABLE(10_9, 7_0);
@property (nullable, readonly, copy) NSString *stringByRemovingPercentEncoding NS_AVAILABLE(10_9, 7_0);
//

NSString *urlString = [NSString stringWithFormat: @"http://www.baidu.com"];//编码转换NSString *newStr = urlString.stringByRemovingPercentEncoding;NSURL *url = [NSURL URLWithString: newStr];//创建 NSURLRequeste 请求对象NSURLRequest *request = [NSURLRequest requestWithURL: url];//
0 0
原创粉丝点击