【问题标题】:Objc: Make a NSURL with a String that does not conform to RFC 2396Objc:使用不符合 RFC 2396 的字符串创建 NSURL
【发布时间】:2011-01-26 11:01:43
【问题描述】:

我有这种情况,我需要使用包含“。”的字符串创建一个 URL。

例如:

NSString *myStringWithURL = [NSString stringWithFormat: 
                             @"http://myurl.com/setParam.php?setName=
                             {\"name\":\"%@\"} ", name];
// myStringWithURL will return the desired URL but it is a String.
// of course I need it as URL in order to make the request.
NSURL *targetURL = [NSURL URLWithString : myStringWithURL]; 
                       //This will return nil. 

所以问题是如何让我的 URL 不返回 nil?

{"name":"My Name"} 部分应该是 JSON,但这似乎比使用 NSDictionary 然后使用 JSON 解析器等更简单。

非常感谢您的帮助!!

【问题讨论】:

    标签: iphone objective-c formatting nsstring nsurl


    【解决方案1】:

    使用 stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding 来转换你的字符串

    【讨论】:

    • 嗨,Max,谢谢您的回答。我使用了以下但没有用:[NSString stringWithFormat: @"myurl.com/setParam.php?setName= {\"name\":\"%@\"} ", [name stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];也许我做错了,你的意思是先用“已经到位而不是直接反斜杠”来制作字符串名称?
    • 你可以在这里发布你的 URL 字符串吗?
    • [[NSString stringWithFormat: @"myurl.com/setParam.php?setName= {\"name\":\"%@\"} ", @"andreas" ] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]
    • 所以你必须包装整个 URL 而不仅仅是参数
    • 哇马克斯。这是非常聪明的!那解决了它。非常感谢!!
    猜你喜欢
    • 2016-04-22
    • 1970-01-01
    • 2011-10-25
    • 1970-01-01
    • 2019-08-31
    • 2014-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多