Unicode项目符号点打印为问号

时间:2014-07-24 13:16:06

标签: javascript jquery unicode

我正在尝试在警报中列出一些内容,当我直接在警报中使用\ 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;

为什么这样做?我该如何将它改回子弹?

1 个答案:

答案 0 :(得分:2)

如果您的网页从服务器到标记为UTF-8编码的浏览器,那么<​​em>应的所有内容都可以正常工作。 (你的服务器端模板代码看起来像JSP,但不管它是什么我假设它是在Unicode中运行的东西。)因此,你正在构建一个合适的Unicode项目符号,你将它放入一些HTML中,那应该没问题。然后,在浏览器中,当您的JavaScript代码将其从元素中拉回时,它应该仍然是正确的。

但是,如果页面被发送到标有UTF-8以外字符编码的浏览器,则浏览器会误解该HTML。然后,JavaScript将检索字符串的受损版本,您将看到您所做的效果。

您可以使用开发人员工具检查响应标头,如果不正确,请以依赖于特定服务器环境的方式在服务器中修复它们(应该非常简单)。