我正在尝试在警报中列出一些内容,当我直接在警报中使用\ u2022时它正确地执行了一个项目符号,但当我在我的scriptlet中执行此操作时:
for(int i=0; i < programs.length; i++) {
collegesWoRecvDate += "\u2022 " + programs[i] + " \n";
}
这在我的HTML中:
<input type="hidden" name="collegesWoRecvDate" id="collegesWoRecvDate" value="<%=collegesWoRecvDate%>" />
这在我的jQuery中:
var noRecvDateArray = $('#collegesWoRecvDate').val();
var missingDates = "MESSAGE MESSAGE \n\n" +
noRecvDateArray + "\n" +
"MESSAGE MESSAGE" +
alert(missingDates);
警报打印出来如下:
&#34; MESSAGE MESSAGE
?计划1
?计划2
?计划3
MESSAGE MESSAGE&#34;
为什么这样做?我该如何将它改回子弹?
答案 0 :(得分:2)
如果您的网页从服务器到标记为UTF-8编码的浏览器,那么<em>应的所有内容都可以正常工作。 (你的服务器端模板代码看起来像JSP,但不管它是什么我假设它是在Unicode中运行的东西。)因此,你正在构建一个合适的Unicode项目符号,你将它放入一些HTML中,那应该没问题。然后,在浏览器中,当您的JavaScript代码将其从元素中拉回时,它应该仍然是正确的。
但是,如果页面被发送到标有UTF-8以外字符编码的浏览器,则浏览器会误解该HTML。然后,JavaScript将检索字符串的受损版本,您将看到您所做的效果。
您可以使用开发人员工具检查响应标头,如果不正确,请以依赖于特定服务器环境的方式在服务器中修复它们(应该非常简单)。