从HTML转换为纯文本时,在文本末尾添加新行
我们的应用程序中有一个文本编辑器,它支持富文本和纯文本。因此,我们使用WebView显示RichText,使用NSTextView显示纯文本,内容以HTML格式保存。在从HTML转换时,我面临在文本末尾添加新行的问题 示例HTML:从HTML转换为纯文本时,在文本末尾添加新行,html,objective-c,cocoa,plaintext,richtext,Html,Objective C,Cocoa,Plaintext,Richtext,我们的应用程序中有一个文本编辑器,它支持富文本和纯文本。因此,我们使用WebView显示RichText,使用NSTextView显示纯文本,内容以HTML格式保存。在从HTML转换时,我面临在文本末尾添加新行的问题 示例HTML:CR1CR2 下面是从HTML到NSString的转换代码 - (NSString *)convertHTMLToPlain:(NSString *)str { NSString *finalString = nil; NSAttributedStr
CR1
CR2
下面是从HTML到NSString的转换代码
- (NSString *)convertHTMLToPlain:(NSString *)str {
NSString *finalString = nil;
NSAttributedString *attrString = nil;
NSData *theData = [str dataUsingEncoding:NSUnicodeStringEncoding];
if (nil != theData) {
NSDictionary *encodingDict = [NSDictionary dictionaryWithObject:@(NSUnicodeStringEncoding) forKey:@"CharacterEncoding"];
attrString = [[NSAttributedString alloc] initWithHTML:theData documentAttributes:&encodingDict];
NSString *result = [attrString string];
NSString *specialCharecter = @"\u2028";
if ([result containsString:specialCharecter]) {
finalString = [result stringByReplacingOccurrencesOfString:specialCharecter
withString:@""];
} else {
finalString = result;
}
}
return finalString;
}
结果值如下所示:
您可以看到末尾没有
标记,但它仍然添加了一行新行,但如果我在webView中打开HTML文件,它会正确显示。有人能告诉我为什么会有这种行为吗。如何解决此问题?我认为这与用于在屏幕上显示的相同,它仅用于格式化输出,类似于\t(制表符),我认为这不是一个问题issue@Rahul辛格,试试这个
NSAttributedString*attrString=[[NSAttributedString alloc]initWithData:[您的字符串数据使用编码:NSUTF8StringEncoding]选项:@{NSDocumentTypeDocumentAttribute:NSHTMLTextDocumentType,NSCharacterEncodingDocumentAttribute:@(NSUTF8StringEncoding)}文档属性:无错误:无]代码>@NiravKotecha:问题仍然存在。从HTML转换为纯文本时,仍会添加一行新行。