ASP.Net mvc5 我的网站不允许'åäö'

Posted

技术标签:

【中文标题】ASP.Net mvc5 我的网站不允许\'åäö\'【英文标题】:ASP.Net mvc5 my site dosen't allow 'åäö'ASP.Net mvc5 我的网站不允许'åäö' 【发布时间】:2015-10-26 11:32:47 【问题描述】:

我正在处理一个 asp.net mvc5 项目,我只是注意到它不允许我使用 'åäö' 很好,它允许我使用这些字符,但它显示如下。 'ä' 等等。

奇怪的是,我可以在导航栏中使用字符,但在页面上却不允许。

这是我的登录页面:

应该说“Användarnamn”和“Lösenord”。

但是我的导航栏可以正常工作..

这是我共享的 _Layout 每个站点都继承自

<!DOCTYPE html>
<html lang="sv">
<head>
    <title>Treetop @ViewBag.Title</title>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="Content-type" content="text/html; charset=utf-8">
    @Styles.Render("~/Content/css")
    @Scripts.Render("~/bundles/jquery")
    @Scripts.Render("~/bundles/modernizr")
    <link href="http://fonts.googleapis.com/css?family=Open+Sans:400,300,600,700&subset=all" rel="stylesheet" type="text/css"/>
</head>
<body>
    @if (User.Identity.IsAuthenticated)
    
        <div class="page-header">
            <div class="page-header-top">
                <div class="container">
                    <div class="page-logo">
                        <h3>Treetop Innovation</h3>
                    </div>
                    <a href="javascript:;" class="menu-toggler"></a>
                </div>
            </div>
            <div class="page-header-menu">
                <div class="container">
                    <div class="hor-menu ">
                        <ul class="nav navbar-nav">
                            <li>
                                @Html.ActionLink("Ny Rapport", "TimeReport", "Reports")
                            </li>
                            <li>
                                @Html.ActionLink("Rappotera frånvaro", "Absent", "Reports")
                            </li>
                            <li>
                                @Html.ActionLink("Rapporter", "Index", "Reports")
                            </li>
                            <li>
                                @Html.ActionLink("Inställningar", "Settings", "Reports")
                            </li>
                            <li>
                                @Html.ActionLink("Mina projekt", "Index", "Projects")
                            </li>
                            <li>
                                @Html.ActionLink("Begär semester", "Index", "Vacation")
                            </li>
                        </ul>
                    </div>
                    <div class=" hor-menu nav navbar-nav pull-right">
                        <ul class="nav navbar-nav">
                            <li><a>@User.Identity.Name</a></li>
                            <li>
                                @using (Html.BeginForm("LogOff", "Account", FormMethod.Post, new  id = "logoutForm", @class = "navbar-right" ))
                                
                                    @Html.AntiForgeryToken()
                                    <a href="javascript:document.getElementById('logoutForm').submit()">Log off</a>
                                
                            </li>
                        </ul>
                    </div>
                </div>
            </div>
        </div>
        <script>
            jQuery(document).ready(function () 
                Metronic.init();
                Layout.init();
                Demo.init();
                ComponentsPickers.init();
                TableAdvanced.init();
            );
        </script>
    
    @RenderBody()
    @Scripts.Render("~/bundles/jquery")
    @Scripts.Render("~/bundles/modernizr")
    @RenderSection("scripts", required: false)
</body>
</html>

这是不起作用的视图:

<body class="login">
    <div class="logo">
        <h3 style="color: white">Treetop Innovation</h3>
    </div>
    <div class="content">
        @using (Html.BeginForm("LogOn", "Account", new  ReturnUrl = ViewBag.ReturnUrl , FormMethod.Post, new  @class = "login-form", role = "form" ))
        
            @Html.AntiForgeryToken()
            <div class="alert alert-danger display-hide">
                <button class="close" data-close="alert"></button>
                <span>
                    @Html.ValidationSummary(true, "", new  @class = "text-danger" )
                </span>
            </div>
            <h3 class="form-title">Logga in</h3>
            <div class="form-group">
                <div class="input-icon">
                    <i class="fa fa-user"></i>
                    @Html.TextBoxFor(m => m.UserName, new  @class = "form-control", placeholder = "Användarnamn" )
                </div>
                @Html.ValidationMessageFor(m => m.UserName, "", new  @class = "text-danger" )
            </div>

            <div class="form-group">
                <div class="input-icon">
                    <i class="fa fa-lock"></i>
                    @Html.PasswordFor(m => m.Password, new  @class = "form-control", placeholder = "Lösenord" )
                </div>
                @Html.ValidationMessageFor(m => m.Password, "", new  @class = "text-danger" )
            </div>

            <div class="form-actions">
                <div class="checkbox" style="padding: 0 20px">
                    @Html.CheckBoxFor(m => m.RememberMe)
                    Kom ihåg
                </div>
                <button type="submit" class="btn green-haze pull-right">
                    Login <i class="fa fa-arrow-right"></i>
                </button>
            </div>
        
    </div>
</body>

【问题讨论】:

这些可能会有所帮助 ***.com/questions/10615072/… ***.com/questions/28805447/… 输入元素使用什么字体系列?可能正在使用的字体没有扩展字符集(我看到了 Open Sans 参考,但这并不意味着它被应用到任何地方)。 据我所知,它应该在每个地方都使用相同的字体......但我会看看谢谢。 @TiesonT。它似乎是相同的字体..我现在才注意到它在某些页面上有效,而在某些页面上却不起作用..很奇怪.. 那些无法正常显示的页面是否缺少字符集元标记? 【参考方案1】:

这基本上是一个编码问题。阅读更多There Ain't No Such Thing as Plain Text

Användarnamn = Anv&#228;ndarnamn 

Lösenord = L&#246;senord

您可以对这些特殊字符使用 HTML 实体或 ISO Latin-1 代码。

https://www.utexas.edu/learn/html/spchar.html

更新 @Broam's 解决问题的答案

短版:编辑一个文件,选择文件 -> 高级保存选项。 不要将 UTF-8 更改为 Ascii,而是将其更改为 UTF-8。编辑:制作 确保您选择了没有字节顺序标记(BOM)的选项

【讨论】:

但是必须有办法解决这个问题,因为它可以在导航栏中工作,但不能在页面上工作.. ?这就是我获得价值的方式。 @Html.TextBoxFor(m => m.UserName, new @class= "form-control", placeholder = "Användarnamn" ) 所以你的解决方案只会让事情变得更糟。【参考方案2】:

您必须使用正确的编码保存.cshtml 文件。

    文件 > 将 MyFile.cshtml 保存为...

    选择使用编码保存...

    选择是替换它。

    选择 UTF-8。

【讨论】:

以上是关于ASP.Net mvc5 我的网站不允许'åäö'的主要内容,如果未能解决你的问题,请参考以下文章

(问号) 而不是旧页面上的ÅÄÖ

ÅÄÖ:啥被认为是对 SEO 更友好的 URL

带有“åäö”的 Linq 查询返回表中的所有项目

使用 jquery 发布和返回数据会损坏 å ä ö

字符 Å Ä Ö 没有显示在我的 DDL 中,我如何告诉 restclient 使用特定的字符集?

UTF-8 with mysql and php in freebsd swedish chars (åäö) [重复]