2010-09-13 89 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