【发布时间】:2010-10-09 20:13:21
【问题描述】:
我们有一个外部 .js 文件,我们希望将其包含在许多不同的页面中。该文件包含在客户端对表格进行排序的代码,并使用脚本中的 ▲ 和 ▼ 字符来指示排序的列和方向。
该脚本最初是为 ASP.Net 页面编写的,用于将一些排序工作从服务器卸载到客户端(在启用 javascript 时防止排序回发)。在这种情况下,编码几乎总是 UTF-8,并且在这种情况下效果很好。
但是,我们也有一些旧的 Classic ASP 页面,我们希望在其中包含该脚本。对于这些页面,编码更像是一个大杂烩,这取决于谁在何时编写页面以及他们使用什么工具(记事本、vs6、vs2005、其他 html 助手)。页面中通常没有指定编码,因此由浏览器来选择,但我可以看到它并没有硬性规定。
问题在于,如果使用不同的(非 UTF8)编码,▼ 和 ▲ 字符将无法正确显示。我尝试改用 html 实体,但无法让它们在 javascript 中正常工作。
如何使脚本针对各种可能的编码进行调整,以便始终正确显示“特殊”字符?是否有我可以使用的不同字符,或者我错过了使 html 实体在 javascript 中工作的技巧?
这里是使用字符的sn-p:
// get sort direction, arrow
var dir = 1;
if (self.innerHTML.indexOf(" ▲") > -1)
dir = -1;
var arrow = (dir == 1)?" ▲":" ▼";
// SORT -- function that actually sorts- not relevant to the question
if (!SimpleTableSort(t.id, self.cellIndex, dir, sortType)) return;
//remove all arrows
for (var c = 0,cl=t.rows[0].cells.length;c<cl;c+=1)
{
var cell = t.rows[0].cells[c];
cell.innerHTML = cell.innerHTML.replace(" ▲", "").replace(" ▼", "");
}
// set new arrow
self.innerHTML += arrow;
出于好奇,我最终使用的代码点是 \u25B4 和 \u25BC。
【问题讨论】:
标签: javascript html encoding