【问题标题】:Converting special characters in c# string to html special characters将c#字符串中的特殊字符转换为html特殊字符
【发布时间】:2013-01-02 05:09:42
【问题描述】:

我正在使用.Net:

fulltext = File.ReadAllText(@location);

在给定位置读取文本anyfile 内容。 我得到的结果是:

fulltext="# vdk10.syx\t1.1 - 3/15/94\r# @(#)Copyright (C) 1987-1993 Verity, Inc.\r#\r# Synonym-list Database Descriptor\r#\r$control: 1\rdescriptor:\r{\r data-table: syu\r {\r worm:\tTHDSTAMP\t\tdate\r worm:\tQPARSER\t\t\ttext\r\t/_hexdata = yes\r varwidth:\tWORD\t\tsyv\r fixwidth:\tEXPLEN\t\t\t2 unsigned-integer\r varwidth:\tEXPLIST\t\tsyx\r\t/_hexdata = yes\r }\r data-table: syw\r {\r varwidth:\tSYNONYMS\tsyz\r }\r}\r\r ";

现在,我希望此全文显示在 html 页面中,以便在 html 中正确识别特殊字符。例如: \r 应替换为换行标记 以便它们在 html 页面显示中正确格式化。

是否有任何 .net 类可以做到这一点?我正在寻找通用方法,因为我正在读取文件并且我可以有任何特殊字符。提前感谢您的帮助或指导。

【问题讨论】:

  • HttpUtility.HtmlEncode() 怎么样?
  • 如果您使用右上角的搜索框...或谷歌,搜索非常简单

标签: javascript jquery html c#-4.0


【解决方案1】:

您正在尝试解决两个问题:

  1. 确保正确编码特殊字符
  2. 漂亮地打印您的文本

按此顺序解决它们:

  1. 首先,通过导入 System.Web 命名空间并使用 HttpUtility (asked on StackOverflow) 对文本进行编码。使用第 2 步中的结果。
  2. 漂亮打印比较棘手,具体取决于您想要的漂亮打印数量。以下是一些方法,按难度递增的顺序排列:
    • 将文本放入pre 元素中。这应该保留换行符、制表符、空格。如果您先在 pre 上添加一个 CSS 类,您仍然可以使用 CSS 调整使用的字体。
    • 将所有\r\r\n 和剩余的\n 替换为<br/>
    • 研究你的文本的结构,根据这个结构解析它,并在特定的上下文中提供特定的标签。例如,您示例中的制表符可能表示项目列表。 HTML 为列表提供了olul 元素。同样,连续的换行符可能表示段落,HTML 为其提供了众所周知的p 元素。

【讨论】:

    【解决方案2】:

    感谢大家的宝贵意见。我用以下代码解决了客户端的格式问题。

    document.getElementById('textView').innerText = fulltext;

    这里的 textview 是我要显示全文的 div。我认为我不需要替换字符串全文中的特殊字符。我输出如图。

    【讨论】:

      猜你喜欢
      • 2013-03-08
      • 2012-05-01
      • 1970-01-01
      • 2019-05-02
      • 2015-02-20
      • 2019-02-17
      • 2011-04-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多