2010-06-29 135 views
4

我一直在stringByAddingPercentEscapesUsingEncoding:方法有問題。 這裏發生了什麼:stringByAddingPercentEscapesUsingEncoding不能與'0'一起使用NSStrings

當我嘗試使用方法NSString的轉換:

"..City=Cl&PostalCode=Rh6 0Nt" 

我得到這個這個..

"City=Cl&PostalCode=Rh62t" 

它應該是:

"..City=Cl&PostalCode=Rh6%200Nt" 

我該怎麼辦?提前致謝 !!

+0

如果您的字符串始終以「..」開頭,可能會有所幫助。它也適用於iOS 4('(gdb)print- [@「0」stringByAddingPercentEscapesUsingEncoding:4]'打印'%200') – 2010-06-29 12:23:48

回答

31

對於我來說,這樣的:

NSString *s=[@"..City=Cl&PostalCode=Rh6 0Nt" stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 
NSLog(@"s=%@",s); 

...輸出:

s=..City=Cl&PostalCode=Rh6%200Nt 

你最有可能使用了錯誤的編碼。

+0

感謝您的回覆。 是的,我意識到我的NSLog中的一個愚蠢的錯誤..我有NSLog字符串編碼字符串NSLog(str)而不是NSLog(@「%@」,str),並導致我的控制檯上輸出不正確。 謝謝! – Susanth 2010-06-30 09:00:15

+3

總是發佈日誌代碼以便其他人可以看到並捕獲這些類型的錯誤,這是個好主意。每個人都是這樣做的,出於某種原因,如果你是編寫代碼的人,他們很難看清楚。 – TechZen 2010-06-30 12:52:17

+0

@TechZen stringByAddingPercentEscapes使用僅對空間或所有特殊字符使用此方法進行編碼。 – prabu 2013-10-31 07:42:17

0

當您試圖編碼NSASCIIStringEncoding字符串不支持ASCII的字符串時,會發生這種情況。

確保您的編碼爲NSUTF8StringEncoding,如果字符串可以包含UTF8字符或方法將返回nil

相關問題