MVC .net核心未正确显示特殊字符

时间:2017-08-04 17:56:28

标签: c# asp.net-mvc razor encoding

我在MVC .net核心网站上有一个非常简单的视图。

@model MvcSearch.Models.SearchModel

@{
    ViewData["Title"] = "Index";
}

<h2>Buscador de Información</h2>

<div class="row">
    @Html.Partial("SearchBox", Model.Search)
    <hr />
    <div class="container">
        <div class="col-md-10">

            <div id="results">
                @if (Model.Results.Count() == 0)
                {
                    <p>No hay nada que mostrar, ¡busca algo!</p>
                }
            </div>
        </div>
    </div>
</div>

一切都是薄荷,但不是ó和¡符号,它显示了这个角色:

以前从未发生过这件事,这是我的第一个.net核心项目。

O寻找可能的解决方案herehere以及其他类似解决方案。但没有一个能完全解决我的环境。

我尝试了第二个链接,但是我遇到了一些问题。

  • 对System.Text.Encoding(4.3.0)和System.Text.Encoding.CodePages(4.3.0)的引用均标有警告图标,但在使用Nuget Package Manager安装期间均未显示错误或警告
  • 我完全明白我必须使用这一行

    Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);

但是在startup.cs中不知道到底在哪里?

  • 我不知道这意味着什么
  

调用Encoding.GetEncoding重载以检索编码。该   Encoding.GetEncoding方法会调用相应的   EncodingProvider.GetEncoding方法,以确定它是否可以提供   请求的编码。

我甚至不确定这是解决这个问题的正确方法。我也认为脚手架视图文件的内部编码与手动创建的文件不同。我应该只创建新的空View文件并将文本复制到那些新文件中吗?

1 个答案:

答案 0 :(得分:3)

然而,有很多与此相关的答案,对我来说似乎都不够容易。它们的范围从注册错误到在未定义到网站的地方注册编码对象。但是,我通过这样做解决了这个问题:

只需在notepad ++或任何其他有能力的文本编辑器中打开视图文件。检查它是否以ANSI编码,并将其转换为UTF-8。

运行你的应用程序,一切都会顺利进行。