【发布时间】:2011-06-05 20:39:51
【问题描述】:
我正在开发一个与音乐相关的网站,并且经常使用 HTML 特殊字符来表示升号 (♯) 和降号 (♭) 以保持内容美观,例如:
♯
♭
但是,我注意到在某些浏览器(IE6、PC 版 Safari)中不支持这些字符。我创建了一个条件 JavaScript,它提供普通的、受支持的字符来代替特殊字符( G# 代表 G♯ 和 Bb 代表 B♭ )。但我很难弄清楚如何检测哪些浏览器缺少这些字符。
我知道我可以测试浏览器(例如 ie6),但我希望做正确的事情并测试 字符支持 本身。
有谁知道使用 javascript、jQuery 或 rails 的好方法吗? (该页面由 rails 应用程序提供服务,因此请求对象和任何其他 Rails 魔法都在桌面上。
【问题讨论】:
-
我最终选择了 Mike Samuel 的出色解决方案,尽管我认为那些表明格式问题的可能存在一些问题——我确实尝试了所有解决方案,但这并不意味着我没有错过任何东西。正如其他人所建议的那样,遇到类似问题的任何人都应该:1.确保他们的页面具有正确的字符编码,2.查看 Matt Ball 引用的链接答案。我在 99% 的情况下偷偷地怀疑他可能是比 javascript hack 更好的解决方案。
-
我怀疑这是字体问题。所选字体不包含您想要的代码点的字素。许多现代浏览器可以使用字体替换(从另一种字体中挑选字形)来弥补这一点。 Mike Samuel 的解决方案很聪明,但如果涉及到固定宽度的字体,可能就行不通了。不幸的是,我没有更好的解决方案。
-
@McDowell - 嗯...我查看了this list of fonts 并没有看到任何可能在带有ie6 的系统上的网络安全字体。所以我只是尝试了“无衬线”但没有成功。我在这里错过了什么吗?有什么好的选择?
-
Microsoft seems to claim that Arial Unicode MS works,但它不适合我(或者可能我的 Windows XP 版本不包含它)。
标签: javascript jquery html ruby-on-rails character-encoding