2010-09-13 55 views
0

代码:CFURLCreateStringByAddingPercentEscapes线机的应用程式打破

NSString* string3 = (NSString*)CFURLCreateStringByAddingPercentEscapes(NULL, (CFStringRef)tvQ.text, NULL, (CFStringRef)@":/?#[]@!$&'()*+,;=", kCFStringEncodingUTF8); 

我的代码工作正常通过URL然而,通过特殊字符到我的数据库,如果我插入带有换行符的数据,这似乎打破我的应用程序和崩溃。有任何想法吗?

**代码是由用户“tc”提供给我的。从以前的问题。这是一个不同的问题,所以我开始了一个新的问题。

想出答案:

NSString* encoded = [[string stringByReplacingOccurrencesOfString:@"\n" withString:@" "] stringByReplacingOccurrencesOfString:@"ç" withString:@"c"]; 
NSString* string3 = [(NSString*)CFURLCreateStringByAddingPercentEscapes(NULL, (CFStringRef)encoded, NULL, (CFStringRef)@":/?#[]@!$&'()*+,;=", kCFStringEncodingUTF8) autorelease]; 

回答

1

也许你应该打电话CFURLCreateStringByAddingPercentEscapes前解析字符串...

一个好主意,可能是使用的NSMutableString的方法

replaceOccurrencesOfString:withString:options:range: 
+0

如何在string3的同一个声明中使用那个和CFURLCreateStringByAddingPercentEscapes? – BigMike 2010-09-13 22:34:32

0
  1. NSString class reference内部有一个名为的部分使用URL

    • stringByAddingPercentEscapesUsingEncoding:
    • stringByReplacingPercentEscapesUsingEncoding:

      参数1 =值1 &参数2 =值2 ....

  2. 的URL作品形式的参数sub没有价值,也许我t应该从参数列表中删除。

+0

谢谢toro - 自从我弄明白之后,我就更新了自己的帖子。 – BigMike 2010-09-13 23:38:59