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

Ric*_*lva 3 c# asp.net-mvc encoding razor

我在 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>
Run Code Online (Sandbox Code Playgroud)

一切正常,但不是 ó 和 ¡ 符号,而是显示以下字符: ?

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

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

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

  • 对 System.Text.Encoding(4.3.0) 和 System.Text.Encoding.CodePages(4.3.0) 的引用都标有警告图标,但在使用 Nuget 包管理器安装期间均未显示错误或警告
  • 我很明白我必须使用这条线

    Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);

但是不知道在startup.cs 中的具体位置?

  • 我也不知道这是什么意思

调用 Encoding.GetEncoding 重载以检索编码。Encoding.GetEncoding 方法会调用对应的 EncodingProvider.GetEncoding 方法来判断是否可以提供请求的编码。

我什至不确定这是解决这个问题的正确方法。我还指出脚手架视图文件的内置编码与手动创建的文件不同。我应该创建新的空视图文件并将文本复制到这些新文件中吗?

Ric*_*lva 5

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

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

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