我在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软件包管理器进行安装期间均未显示错误或警告
我很明白我必须用这条线

Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);


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


我也不知道这是什么意思



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


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

最佳答案

但是,与此相关的答案很多,但对于我来说,这些答案似乎都不容易。从注册错误到注册未定义到网站的编码对象,范围很广。但是,我通过执行以下操作解决了这个问题:

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

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

关于c# - MVC .net核心未正确显示特殊字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45512883/

10-09 20:44