【问题标题】:why Special characters apostrophe and others shows like this ’, in HTMl file为什么特殊字符撇号和其他字符会像这样在 HTMl 文件中显示
【发布时间】:2015-08-24 17:14:55
【问题描述】:

我有一个 UTF-8 的 markdown 文件,没有 BOM 编码格式[md file generated tool from word document]。使用 jekyll 工具将此降价转换为 HTML。 md 文件内容中可以使用以下特殊字符(撇号、连字符等)。

1.MD中的示例内容:

dont't, **ListView** control

转换后的 HTML 格式如下:

<!DOCTYPE html>
    <html>
      <head>
      <meta charset="utf-8">      
    </head>
      <body> 
      <p>dont’t, <strong>ListView</strong> control</p>
        </body>
    </html>

我们可以在打开 html 文件时得到准确的结果dont’t, ListView control。我想使用通过 Html.Action 加载到 ASP.NET MVC razor 视图中的相同 html 文件。下面给出的语法

MVC Razor 视图通过 action 方法访问 html 文件:

Html.Action("GetHtmlPage", "Products", new {path = "~/Views/Products/WhatsNew/" + Model.Platform + ".html"}))

动作代码:

public ActionResult GetHtmlPage(string path)
        {
            return new FilePathResult(path, "text/html");
        }

使用上面的 MVC 语法,我可以成功地将 HTMl 文件加载到我的视图中。但输出如下所示,如浏览器和 HTMl 模板,如以前的格式。

dont’t, ListView control
  1. 撇号被视为', ’
  2. 在粗体元素之后添加字符串。

将html文件加载到razor视图时如何在浏览器中查看特殊字符。?坚持到今天为止。

【问题讨论】:

  • 您的撇号是一个与编码混淆的特殊字符。注意'之间的区别

标签: asp.net-mvc html razor markdown jekyll


【解决方案1】:

我在使用 markdown 到 html 转换器 (pandoc) 时遇到了同样的问题,我找到了解决方案 here。只需添加以下标题即可解决我的问题:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

【讨论】:

    【解决方案2】:

    您的 HTML 文档似乎将自己宣传为 UTF-8。但是,如果它实际上不是 UTF-8 格式,或者如果 Markdown 文件不是 UTF-8,则可能导致字符实际上不是 UTF-8 编码的字符。所以检查你的文件的编码。

    如果这不能解决问题,那么您需要使用HTML Entities。或者您只需要使用ASCII 文本作为标点符号。

    例如,查看示例 HTML 中的撇号,请注意它倾斜一个角度(单右引号,Unicode 字符 U+2019),而不是海峡撇号(Unicode 字符 U+0027 - 这是也是一个 ASCII 字符)。

    请注意,要使这些字符在 HTML 文档中可靠显示,最好对这些字符使用 HTML 实体。因此,markdown 文档应该是这样的:

    Don&rsquo;t, **ListView** control
    

    HTML 实体 &amp;rsquo; 告诉浏览器显示一个右引号,Unicode 字符 U+2019。

    请注意,Markdown 会为您将not convert 此类字符转换为 HTML 实体。你必须自己做。您可以使用 SmartyPants 进行转换,但它会将 ASCII 字符转换为更丰富的字符作为 HTML 实体。在这种情况下,您的 Markdown 应该如下所示:

    Don't, **ListView** control
    

    当然,如果你愿意,你可以只使用 ASCII 字符而不用 SmartPants。

    但是,请注意,如果您使用的是 MS Word,则该程序默认配置为将您键入的 ASCII 字符(使用键盘上的撇号键)自动替换为花哨的字符。出于这个原因,通常建议不要使用文字处理器(如 MS Word)来编辑 Markdown 文档。请改用plain text editor

    如果您确实必须使用 MS Word,有几种方法可以禁用自动替换行为。有关文字处理器如何处理这些类型的字符以及如何禁用该行为的更多信息,请参阅 this

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-06
      • 2021-10-26
      • 1970-01-01
      • 2016-02-19
      • 2010-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多