2012-06-22 35 views
0

在我的iOS應用程序中,我使用NSURLConnection將請求發佈到服務器。下面是我使用的代碼:iOS - NSURLConnection - 請求中字符的正確編碼

NSString* str = @"http://www.myserver.com/post.php?action=rating&grade=A+&name=vasu"; 
NSURL *url = [NSURL URLWithString:[str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; 

如果你看到等級,其等於「A +」
但其張貼只有「A」,等級服務器。儘管當我正確地編碼字符串時,爲什麼它無法正確發佈請求?
這是必須在服務器上處理的東西嗎?

回答

1

+號是用於URL編碼的保留字符(用於'空格')。儘管+的溢出值應該在stringByAddingPercentEscapesUsingEncoding之後爲%2B,呃...它不是。你可以做的是在NSString中添加一個簡單的類別來繞過這個問題。你可以找到一個相關blog post here和一些信息URL encoding here

+0

謝謝,我做了改變.....但我的服務器正在處理「A%2B」作爲字符串,而不是將其視爲「A +」,我應該怎麼處理在我的服務器端更改? – Satyam

+0

嗯,我想你只需要在服務器上使用任何語言解碼字符串 – Alladinian

+0

你能告訴我如何解碼它嗎? – Satyam