我遇到了一个似乎无法解决的问题。在后端我使用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åse"
而不是“påse”。
我的所有视图和文件都保存为UTF-8(使用Visual Studio和Notepad ++进行双重检查)。如上所述,它在不使用JavaScript时打印出来就好了。
我可能做错了什么,我该如何解决?
提前致谢!
答案 0 :(得分:1)
使用Javascript编码器;
添加编码参考:
@using System.Text.Encodings.Web
然后:
@foreach (var words in ViewBag.Words)
{
@: console.log("@JavaScriptEncoder.Default.Encode(@words)");
}