我们有一个外部.js文件,我们希望将其包含在许多不同的页面中.该文件包含用于在客户端对表进行排序的代码,并使用脚本中的▲和▼字符来指示哪个列已排序以及在哪个方向排序.
该脚本最初是为ASP.Net页面编写的,用于将一些排序工作从服务器卸载到客户端(防止在启用javascript时对回发进行排序).在这种情况下,编码几乎总是UTF-8,并且在该上下文中工作得很好.
但是,我们还有一些较旧的经典ASP页面,我们希望包含该脚本.对于这些页面,编码更像是一个大杂烩,取决于谁在何时编写页面以及使用了什么工具(记事本,vs6,vs2005,其他html帮助程序).通常在页面中没有指定编码,所以由浏览器来选择,但实际上并没有我能看到的硬规则.
问题是如果使用不同的(非UTF8)编码,则▼和▲字符将无法正确显示.我尝试使用html实体,但无法让它们从javascript中运行良好.
如何使脚本针对各种可能的编码进行调整,以便"特殊"字符始终正确显示?是否有我可以使用的不同角色,或者我错过了使用html实现html实体的技巧?
以下是使用字符的代码段:
// 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对于好奇,我最终使用的代码点与接受的答案是\ u25B4和\ u25BC.
1> TheHippo..:JavaScript文件的编码取决于嵌入它的HTML页面的编码.如果您有UTF-8 JavaScript文件和ISO-8859-1 HTML页面,则JavaScript被解释为ISO-8859-1.
如果您从外部文件加载JavaScript,则可以指定JavaScript的编码:
无论如何,最好的选择是以一种编码保存与webproject相关的所有文件,建议使用UTF-8.
2> andynormancx..:您希望Javascript Unicode转义即"\ uxxxx",其中"xxxx"是该字符的Unicode代码点.我相信"\ u25B2"和"\ u25BC"是你需要的两个.