javascript - 在我的javascript中,如何解决 "\u0026"、 "&"和 "&"之间的编码问题?

标签 javascript html asp.net-mvc encoding javascriptserializer

我有一个 asp.net-mvc 网站,并且我的 View 之一中有以下代码:

var teams = <%= new JavaScriptSerializer().Serialize(Model.Names) %>;

Model.Names 是一个字符串数组和名称之一,一个团队的名称为“Joe & Bob”,它在 html 中显示为:

 "Joe \u0026 Bob"

即使它在浏览器中显示为“Joe & Bob”

问题是我有另一行代码试图与“Joe & Bob”进行比较,但找不到它。当我查看它的代码时,它为什么会失败,它只是吐出一个像这样的变量

 "<%= Model.Name %>",

在浏览器源代码中我看到

"Joe & Bob" 

(而不是乔\u0026鲍勃)

我尝试这样做

   <%=Html.Encode(Model.Name); %>

所以我可以进行适当的比较,但我得到:

 Joe &amp; Bob

代替乔\u0026鲍勃

我想获得一些关于在浏览器源中获取完全相同的字符串的最简洁方法的建议,以便我可以进行正确的比较。

最佳答案

在 JavaScript 中,“\u0026”完全等同于“&”,因此如果您正在进行 JavaScript 比较,这会很好地工作:

console.log("Joe \u0026 Bob" == "Joe & Bob"); // true

但是如果您想在文本中表示该字符串,您肯定希望将其 HTML 编码为 &

<span class="name"><%=Html.Encode(Model.Name)%></name>

如果这样做,那么就 JavaScript 而言,DOM 元素的文本值仍应为“Joe & Bob”:

console.log($('.name').text()); // "Joe & Bob"
console.log($('.name').text() == "Joe & Bob"); // true
console.log($('.name').text() == "Joe \u0026 Bob"); // true

关于javascript - 在我的javascript中,如何解决 "\u0026"、 "&amp;"和 "&"之间的编码问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31031892/

相关文章:

javascript - JSON从EJS到JS中的JSON对象

javascript - Websocket 握手失败 404(golang 服务器)

javascript - 没有脚本标签的问题

JavaScript 计时器不适用于多个实例

javascript - 文本区域输入和突出显示容器的同步滚动

html - css 网格元素上的粘性位置

C#生成唯一的Guid(不存在于数据库的表中)

asp.net-mvc - 海量数据未绑定(bind)到 Kendo Grid

javascript - 嵌套 Backbone(Marionette)模型/集合中的冒泡事件

jquery - 调整窗口大小时未触发 CSS 转换