在HTML上标题为UTF-8

时间:2012-01-14 22:19:17

标签: javascript html encoding

我在页面标题上遇到UTF-8字符问题, 我想在页面标题上添加这个 - > ♫< ---(音乐符号)

问题是,有时它可以正常工作(在谷歌浏览器上),有时它不会(当它不起作用时,它看起来像一个应该是编码错误的正方形)奇怪。 在Firefox中,当你查看窗口顶部的标题(页面中出现的标题)时,它总是有效,但下面栏中显示的标题再次显示为正方形。 :/ 我该怎么做才能解决这个问题?

我正在通过Javascript文件定义标题,我正在使用PHP将它定义为utf-8。

var title =“♫我的音乐”; document.title = title;

顺便说一句,它似乎总是在Linux上工作,但在Windows上,它会做那些事情。 = /

提前致谢。

4 个答案:

答案 0 :(得分:5)

这是字体问题而不是编码问题;代替字符的小矩形通常意味着该字符不存在于所使用的字体中。

浏览器在呈现title元素内容(页面本身之外的某个位置)时通常会使用某些特定字体。这些字体可能取决于操作系统中的设置。例如,在Windows 7上,它们的默认值为9pt Segoe UI,这是一种相对丰富的字体,而旧系统的字体更为有限。无论如何,这不在作者手中。

因此结论是title元素中应避免使用特殊符号。它们的渲染无法保证,就搜索引擎而言,它们可能没有任何价值。

答案 1 :(得分:2)

您是否已将charset的元标记添加到HTML?

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

答案 2 :(得分:1)

  

有时候它会起作用(在谷歌浏览器上),有时它不起作用(当它不起作用时,它看起来像一个应该是编码错误的正方形)怪异地

这很可能取决于浏览器和操作系统使用的字体。如果字符在字体中定义,它将显示。如果不是,它就不会。

不幸的是,你无能为力 - 这些都是你无法控制的。

有点相关:Unicode support in Web standard fonts

答案 3 :(得分:-1)

我用这种表示法解决了这个问题(西班牙语年份):

title="A & # 241 ; o"

重要:我在字符之间插入空格以进行充分的渲染。