我需要从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 :.
逃避他们的角色.你可能想用
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以了解有关所用功能的更多信息如何使其符合您的需求.
原文地址:https://www.jb51.cc/c/110834.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。