2014-02-12 77 views
0

我有一個在其中包含一些unicode行分隔符的HTML字符串。 (十六進制值E2 80 A8)如何替換Unicode行分隔符?

NSRange range = (NSRange){0,[htmlString length]}; 
[htmlString replaceOccurrencesOfString:@"\r" withString:@"<br>" options:NSCaseInsensitiveSearch range:range]; 

我該如何替換這種情況?上面的代碼不起作用。

+0

您應該更換'\ n',而不是'\ r'。 '\ n'是一個換行符,'\ r'是一個回車符。 –

+0

是啊,已經試過了。它不適用於3字節的unicode序列。 –

回答

2

要在文字字符串中輸入Unicode代碼行分隔符(U + 2028,UTF-8 E2 80 A8),您需要使用\u2028 unicode轉義符。所以:

[htmlString replaceOccurrencesOfString:@"\u2028" 
          withString:@"<br>" 
           options:NSCaseInsensitiveSearch 
           range:range]; 

會做你想做的。

+0

(但沒有理由爲NSCaseInsensitiveSearch選項。) –

+0

@MartinR - 是的,我剛剛複製了OP的代碼,它是無害的,但我應該整理它。 – CRD