2014-11-25 128 views
0

我正在開發聊天應用程序。在iOS 8中,我發送文本和圖像,發送帶有文本圖像的字符「\ U0000fffc」以nsstring爲前綴。如何從nsstring中刪除字符' U0000fffc'ios

我嘗試使用下面的代碼,但它不工作

NSCharacterSet *characterset=[NSCharacterSet characterSetWithCharactersInString:@"\\U0000fffc"]; 
NSString *newString = [str stringByTrimmingCharactersInSet:characterset]; 

任何幫助,將不勝感激

+0

如果這些字符串是字符串中出現的字符,您可以嘗試'[str stringByReplacingOccurrencesOfString:@「\\ U0000fffc」withString:@「」]'。使用字符串創建字符集在比較之前將字符串拆分爲其組成字符,因此它不具備所需的效果。 – warrenm 2014-11-25 05:27:46

+0

我嘗試過但仍然不能正常工作。 – Vidhyanand 2014-11-25 05:51:17

+3

不,請指出他們爲什麼在那裏,而不是如何將它們刪除。 – trojanfoe 2014-11-25 06:12:34

回答

4

感謝所有誰已回答和貢獻。我固定使用下面的代碼

NSString *codeString = @"\uFFFC"; 
NSString *msg=[msg stringByReplacingOccurrencesOfString:codeString withString:@""]; 

如果我使用上面的代碼,那麼編譯錯誤是固定和工作....!

0
NSString *str = @"This is my string \U0000fffc"; 
NSString *strModified = [str stringByReplacingOccurrencesOfString:@"\U0000fffc" withString:@""]; 
NSLog(@"%@",strModified); 

試試這個。希望會爲你工作。 :)

-1

我的解決辦法:

- (NSString *) cleanString:(NSString *)theString { 

    NSData *stringToClean = [myString dataUsingEncoding: NSASCIIStringEncoding allowLossyConversion: YES]; 

    NSString *stringCleaned = [[NSString alloc] initWithData: stringData encoding: NSASCIIStringEncoding]; 

    return stringCleaned; 
} 

A於5月objc.io非常好的職位可以幫助你:http://www.objc.io/issue-9/unicode.html

0

今天,我遇到了同樣的情況,並在多一些,我發現後,挖所述字符實際上是NSAttachmentCharacter,其功能-(void)replaceCharactersInRange:(NSRange)range withAttributedString:(NSAttributedString *)attrString;添加到您的屬性字符串中以標記字符串中NSTextAttachment的位置,您不應該將其替換。 如果您在使用字符串時仍然遇到問題,請提供有關此問題的更多信息,否則請堅持使用您當前的實現。

1

這是替換字符 (通常是帶有白色問號或空方框的黑色菱形)是Unicode標準中特殊表中代碼點U + FFFD中的符號。當系統無法將數據流呈現爲正確的符號時,它被用來指示問題。當數據無效並且不匹配任何字符時,通常會看到它。

這可以去除遵循

NSString *codeString = @"\\ufffc"; 
NSString *newString=[str stringByReplacingOccurrencesOfString:codeString withString:@""]; 

P.S: 「/uFFFC」 並沒有爲我工作。

+0

不適用於我的情況 – 2017-01-24 11:49:51

+0

你是怎麼試過的,用雙斜線還是單斜線? – 2017-01-24 12:18:27