2012-01-14 41 views
2

我在与页面标题UTF-8字符, 一个问题,我想在页面的标题添加此UTF-8 - >♫< ---(音乐符号)标题在HTML

的事情是,有时它的工作原理(谷歌浏览器),有时它不(当它不工作,看起来应该是编码的错误的平方)古怪。 在firefox中,当你看到窗口顶部的标题(标题出现在你的页面中)时,它总是有效的,但是在下面的条中出现的标题再次出现在方形的东西上。 :/ 我该如何解决这个问题?

我由我使用PHP来定义它UTF-8,以及一个js文件中定义通过Javascript的称号。

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

顺便说一下,它似乎在Linux上总是工作,但在Windows,它的那些东西。 =/

在此先感谢。

+0

你是如何生成HTML的? PHP?你的PHP文件是UTF-8吗?你是否告诉浏览器它是UTF-8(通过Content-Type头或HTML头中的meta http-equiv)?(你可以用Fiddler2检查标题) – Cameron 2012-01-14 22:21:39

回答

5

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

浏览器时,通常他们提供title元素含量(页面本身之外的某处)使用一些特定的字体。这些字体可能取决于操作系统中的设置。例如,在Windows 7上,它们的默认设置是9pt Segoe UI,这是一种相对丰富的字体,而较老的系统则具有更多有限的字体。无论如何,这不在作者的手中。

所以得出的结论是,特殊符号应在title元素来避免。他们的渲染不能保证,并且就搜索引擎而言,它们可能没有价值。

+0

+1比我的更详细的解释,很好。 – 2012-01-14 23:01:37

+0

感谢您的解释,当我添加改变字体的样式时,谷歌浏览器似乎至少可以理解,因为我认为标题字体可能是随机的,让我们看看是否这样,它会工作,是的,我知道它是无价值的,但是它是在一个条件后通过javascript制作的,所以它对搜索引擎无关紧要。谢谢。 – Grego 2012-01-15 11:56:53

1

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

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

有时它的工作原理(谷歌浏览器),有时它不(当它不工作,看起来应该是编码的错误的平方)古怪

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

没有什么可以做这件事,遗憾的是 - 无论这些事情是你无法控制的。

有点相关:Unicode support in Web standard fonts

-1

我用这个符号解决此问题(今年西班牙):

title="A & # 241 ; o" 

重要:我插入足够renderization字符之间的空白空间。