2011-05-02 41 views
1

我從webservice獲取數據並在標籤上顯示。下面 是針對CFURLCreateStringByReplacingPercentEscapesUsingEncoding中的問題

cell.lblMainText.text=(NSString *)CFURLCreateStringByReplacingPercentEscapesUsingEncoding(
            kCFAllocatorDefault, 
            (CFStringRef)cell.lblMainText.text, 
            CFSTR(""), kCFStringEncodingUTF8); 

此時,每當從web服務的響應是說代碼:%%%%%%%%%那麼dispaly null作爲 CFURLCreateStringByReplacingPercentEscapesUsingEncoding刪除所有%跡象。所以我感到有點困惑在那個地方這將使用什麼返回%%%%%作爲我的字符串。

+0

您使用Monotouch嗎? – 2011-05-02 12:42:00

回答

0

這是設計。 %%不是%符號的有效編碼。它將改爲%25 - 請參閱http://www.w3schools.com/tags/ref_urlencode.asp

此函數在失敗時將返回NULL,特別是如果它發現無效百分比轉義序列(如您的示例中)。

例如,這正常工作

 CFStringRef string = CFURLCreateStringByReplacingPercentEscapesUsingEncoding(kCFAllocatorDefault, CFSTR("%25%25%25%25%25%25"), CFSTR(""), kCFStringEncodingUTF8); 

服務器將需要返回正確的編碼,除非你想進入分析了這種情況下自己這個特定的字符串。