【问题标题】:how to convert %20 to space in Iphone SDK如何在 Iphone SDK 中将 %20 转换为空格
【发布时间】:2013-04-25 08:56:53
【问题描述】:

我正在开发应用程序,我大部分时间都在与网络服务进行交互。当我在将 url 转换为请求时将空间转换为 %20 的某个位置添加空间时,我遇到了问题。我用谷歌搜索,但根据我的要求找不到任何健康的解决方案,因为它只在请求 url 时发生变化。这就是我正在做的事情。

    url = [url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
  request = [NSURLRequest requestWithURL:[NSURL URLWithString:url]];
NSLog(@"Request is : %@", request);
[[NSURLConnection alloc] initWithRequest:request delegate:self];

NSLog 上,它会告诉我 %20 哪里有空间。如果有人知道请建议我更好的方法来解决这个问题。这对我来说会很棒。提前致谢。

【问题讨论】:

  • 为什么要删除它?它称为 url 编码,它是 url 请求/与 Web 服务交互所必需的。你想从响应中删除这个 %20 吗?
  • @vishy 因为我从 web 服务获得了相同的响应,带有“%20”,那么我该如何处理呢?
  • @josh 我想你现在得到了解决方案..

标签: nsurl


【解决方案1】:

您实际上是使用此指令将空格转换为 %20:

url = [url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]

但这是获得正确的NSURLRequest 所必需的,因为某些字符需要这种转换。

您可以使用其他NSString 方法将它们重新转换为“普通”字符:

– stringByReplacingPercentEscapesUsingEncoding

【讨论】:

    【解决方案2】:

    从 URL 中删除 %20

    url = [strFileName stringByRemovingPercentEncoding];
    

    【讨论】:

      【解决方案3】:

      如果您不想要 %20 而不是空格,那么为什么要使用 stringByAddingPercentEscapesUsingEncoding

      stringByAddingPercentEscapesUsingEncoding - 将空格转换为 %20

      【讨论】:

        【解决方案4】:

        在得到网络服务的响应后,我通过以下行解决了这个问题。

         responseString= [responseString stringByReplacingOccurrencesOfString:@"%20" withString:@" "];
        

        现在我得到了正确的数据,但我认为这不是一个好的解决方案:)。 感谢您回复帖子。

        【讨论】:

        • 是的,-stringByReplacingPercentEscapesUsingEncoding: 是更好的选择
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-31
        • 1970-01-01
        • 2010-12-24
        相关资源
        最近更新 更多