Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从HTML转换为纯文本时,在文本末尾添加新行_Html_Objective C_Cocoa_Plaintext_Richtext - Fatal编程技术网

从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

我们的应用程序中有一个文本编辑器,它支持富文本和纯文本。因此,我们使用WebView显示RichText,使用NSTextView显示纯文本,内容以HTML格式保存。在从HTML转换时,我面临在文本末尾添加新行的问题

示例HTML:
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转换为纯文本时,仍会添加一行新行。