【问题标题】:Pass special characters through NSURL and NSData [duplicate]通过 NSURL 和 NSData 传递特殊字符 [重复]
【发布时间】:2013-08-14 22:55:49
【问题描述】:

我刚刚学到了不能通过 NSURL 传递特殊字符的艰难方法。我需要一个函数来帮助我通过 NSURL 和 NSData 传递“&、%、“、ñ”等字符。

我的代码如下。您可以在下面看到我用 %20 替换了换行符 (\n) 和空格。有没有一种功能或简单的方法可以让上面列出的字符类型通过 NSURL?任何帮助都会很棒!谢谢!

NSString *var1_pre = [myTextView.text stringByReplacingOccurrencesOfString:@" " 
withString:@"%20"];

NSString *var1 = [var1_pre stringByReplacingOccurrencesOfString:@"\n" withString:@"%20"];

NSString *strURL = [NSString stringWithFormat:@"http://www.website.com/page.php?
var1=%@",var1];

NSData *dataURL = [NSData dataWithContentsOfURL:[NSURL URLWithString:strURL]];

【问题讨论】:

标签: iphone ios objective-c


【解决方案1】:

使用

NSString *strUrl=[@"YOURURL" stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURL *url=[NSURL URLWithString:strUrl];

【讨论】:

  • 谢谢,我实际上传递了几个变量(为简单起见,我在示例代码中只列出了 1 个)。我将如何编辑您的答案以处理需要传递的 3 个不同变量?
  • 只通过percentExcapesUsingEncoding 类型的方法传递变量的值。您不应传递 url 中 & 或 = 等属于 url 语法的部分。您也不应该对变量名称进行编码(尽管它不应该造成任何伤害),而应该只对所有值进行编码。
【解决方案2】:
NSString *urlString = [NSString stringWithFormat:@"URL_STRING"];     
NSURL *MyUrl = [NSURL URLWithString:[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];

stringByAddingPercentEscapesUsingEncoding. 转换合法 URL 字符串。

【讨论】:

    猜你喜欢
    • 2015-11-22
    • 1970-01-01
    • 2013-09-01
    • 2013-10-22
    • 2017-06-14
    • 1970-01-01
    • 2015-02-03
    • 2014-11-24
    • 1970-01-01
    相关资源
    最近更新 更多