Objective-C 中的 URL 字符串转义表示? (“百分比编码”)

发布于 2024-12-27 07:57:18 字数 479 浏览 1 评论 0原文

我想在 IOS5 下的 Objective-C 中完成一个非常简单的任务:将 URL 字符串转换为其转义表示形式。

我尝试了很多方法来做到这一点,但似乎都不起作用。

我无法使 stringByAddingPercentEscapesUsingEncoding: NSASCIIStringEncoding 工作。它会转换诸如 áíűőüöúóé 之类的字母,但不会转换诸如 = 之类的其他字母。

我想要一个像 Uri.EscapeDataString 这样的函数( http: //msdn.microsoft.com/en-us/library/system.uri.escapedatastring.aspx )在 .net 中。

谢谢!

I want to make a very simple task in objective-c under IOS5: convert URL string to its escaped representation.

I tried a lot of ways to do it but neither seemed to work.

I can not make stringByAddingPercentEscapesUsingEncoding: NSASCIIStringEncoding work. It converts letters like áíűőüöúóé but does not convert others like =.

I'd like to have a function like Uri.EscapeDataString ( http://msdn.microsoft.com/en-us/library/system.uri.escapedatastring.aspx ) in .net.

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

蓝梦月影 2025-01-03 07:57:18

您可以向 NSString 添加一个类别,该类别执行类似

- (NSString *)ps_stringByAddingPercentEscapes;
{
    return [(NSString *)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, 
                                                               (CFStringRef)self, 
                                                               NULL, 
                                                               (CFStringRef)@":/?#[]@!
amp;’()*+,;=", 
                                                               kCFStringEncodingUTF8) autorelease];
}

Replace @":/?#[]@!$&'()*+,;=" 的操作您关心的字符。

You could add a category to NSString that does something like

- (NSString *)ps_stringByAddingPercentEscapes;
{
    return [(NSString *)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, 
                                                               (CFStringRef)self, 
                                                               NULL, 
                                                               (CFStringRef)@":/?#[]@!
amp;’()*+,;=", 
                                                               kCFStringEncodingUTF8) autorelease];
}

Replace @":/?#[]@!$&’()*+,;=" for the chars that you care about.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文