北欧角色在JavaScript中逃脱

时间:2018-03-22 13:51:31

标签: javascript razor asp.net-core

我遇到了一个似乎无法解决的问题。在后端我使用ASP.NET Core 2.0,从Controller到View,使用ViewBag发送一个包含几个单词的数组。例如。 “这些”,“是”,“Överdrivna”,“Påse”。

在我的视图中使用以下Razor代码我循环结果

@foreach (var words in ViewBag.Words)
{
    <span>@words.word</span>
}

但是我想将这个数组的内容发送到JavaScript数组中,这就是麻烦开始的地方。例如。如果我这样做:

<script>
console.log("åäö"); <-- this works
@foreach (var words in ViewBag.Words)
{
console.log('@words.word');
}
</script>

没有北欧字符的字词在控制台中正确显示,例如“这些”。但是,当要打印出带有“ÅÄÖ”的单词/单词时,我将其打印为"p&#xE5;se"而不是“påse”。

我的所有视图和文件都保存为UTF-8(使用Visual Studio和Notepad ++进行双重检查)。如上所述,它在不使用JavaScript时打印出来就好了。

我可能做错了什么,我该如何解决?

提前致谢!

1 个答案:

答案 0 :(得分:1)

使用Javascript编码器;

添加编码参考:

@using System.Text.Encodings.Web

然后:

 @foreach (var words in ViewBag.Words)
    {
       @:  console.log("@JavaScriptEncoder.Default.Encode(@words)"); 
    }