2012-02-08 23 views
0

我遇到了一個奇怪的問題。我建立了一個mysql數據庫,用戶可以通過應用程序存儲他的聯繫人。他只需點擊一個按鈕即可添加他的聯繫信息。然後,數據被添加到數據庫。當字符串包含空格時,應用程序未更新數據庫

但是,當聯繫人的信息在他的名字,姓氏或號碼之間有空格時,應用程序拒絕接受數據。我沒有收到錯誤信息或類似的東西,但我也沒有得到任何確認。該記錄在數據庫中不存在。

我的php文件沒有問題(文件絕對正確,我在這裏檢查了兩次)。 這裏是我的代碼:

NSString *strURL = [NSString stringWithFormat:@"http://www.abc.com/phpFile.php?number=%@&name=%@&lastname=%@", number, firstName, lastName]; 

NSData *dataURL = [NSData dataWithContentsOfURL:[NSURL URLWithString:strURL]]; 
     NSString *strResult = [[NSString alloc] initWithData:dataURL encoding:NSUTF8StringEncoding]; 

     NSLog(@"%@", strResult); 
+1

請不要擬人化你的代碼。這讓一些人很難跟上。 – 2012-02-08 15:07:09

+0

您使用的是核心數據嗎?也許某個實體屬性類型設置不正確。 – JDx 2012-02-08 15:08:46

+0

@保羅:對不起,英語不是我的母語,我有時會被帶走,我會編輯它。 – Blade 2012-02-08 15:22:26

回答

5

空格字符不是在URI允許的。使用%20來編碼空間。還有其他字符也不允許作爲URI的一部分。查找URI編碼。

+0

謝謝。我在想同樣的事。但是我不知道我可以將它放在我的代碼中,因爲我不知道有人使用該應用程序時空間的位置。 – Blade 2012-02-08 15:21:26

+1

看看以下鏈接如何編碼:[鏈接](http://stackoverflow.com/questions/3140424/stringbyaddingpercentescapesusingencoding-not-working-with-nsstrings-with-0) – bbarnhart 2012-02-08 15:35:04

2
NSString *strURL = [NSString stringWithFormat:@"http://www.abc.com/phpFile.php?number=%@&name=%@&lastname=%@", number, firstName, lastName]; 
strURL = [strURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding] 

NSData *dataURL = [NSData dataWithContentsOfURL:[NSURL URLWithString:strURL]]; 
     NSString *strResult = [[NSString alloc] initWithData:dataURL encoding:NSUTF8StringEncoding]; 

     NSLog(@"%@", strResult); 
相關問題