加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

objective-c – NSString stringByReplacingPercentEscapesUsing

发布时间:2020-12-16 03:39:28 所属栏目:百科 来源:网络整理
导读:我需要从NSString获取url字符串.我做以下事情: NSString * str = [NSString stringWithString:@"i@gmail.com"]; NSString * eStr = [str stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; NSLog(@"%@",eStr); 结果是i@gmail.com.但我
我需要从NSString获取url字符串.我做以下事情:
NSString * str = [NSString stringWithString:@"i@gmail.com"];

    NSString * eStr = [str stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

    NSLog(@"%@",eStr);

结果是i@gmail.com.但我需要i@gmail.com.用NSASCIIStringEncoding替换NSUTF8StringEncoding没有帮助.

解决方法

你使用的是错误的方法.这恰恰相反,翻译百分比
逃避他们的角色.你可能想用
stringByAddingPercentEscapesUsingEncoding :.
NSString *str  = @"i@gmail.com";
NSString *eStr =
    [str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

除此之外,默认情况下看起来@字符不会被转义.然后,
正如上述方法的文档所指出的那样,您需要使用
CoreFoundation实现你想要的.

NSString *str  = @"i@gmail.com";

CFStringRef eStr = CFURLCreateStringByAddingPercentEscapes(
    kCFAllocatorDefault,(CFStringRef)str,NULL,(CFStringRef)@"@",kCFStringEncodingUTF8
);

NSLog(@"%@",eStr);

CFRelease(eStr);

请查看documentation以了解有关所用功能的更多信息如何使其符合您的需求.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读