在我的 javascript 中,如何解决“\u0026”、“&”和“&”之间的编码问题?
In my javascript, how can I fix this encoding issue between "\u0026", "&" and "&"?
我有一个 asp.net-mvc 网站,我的一个视图中有以下代码:
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 & 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
我有一个 asp.net-mvc 网站,我的一个视图中有以下代码:
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 & 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