0

情况:我有一个相当大的网站(windows server 2003)我想标准化为只使用 UTF-8。现在它使用各种字符编码,当方块开始出现在特定页面上后,我们决定只使用一种字符编码(utf-8),包括它使用的数据库。这是为了使网站易于维护。将所有内容更改为 utf-8 后,如果出现新的方块,然后需要以任何方式修复(当然不更改字符编码),这不是问题。

我添加了一个 http 响应标头,它将字符编码设置为 utf-8。在我浏览器的网站选项中,我确实看到现在出现了 utf-8。

问题是 .css 文件似乎不再有效(使用标签,我可以当场指定 .css 并且它确实有效)。当我删除这些行时:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

.css 文件有效果,但字体看起来仍然与我更改响应标头之前不同。我也不想删除这些行。

设置为 utf-8 怎么可能阻止我的 .css 文件被链接使用?我尝试更改编辑器的 BOM 和字符编码选项,但我无法解决问题。我究竟做错了什么?也许我不应该添加该响应标头并以完全不同的方式标准化网站?

编辑:新发现:如果我在

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN

行它确实有效!我真的很想知道这里发生了什么。

4

1 回答 1

0

某些非 UTF-8 字符可能会破坏您的 HTML。您可能在其中有一个打破分隔符的引号,因为它是 MS-WORD (Windows 1251) 引号而不是". 在没有看到您的实际 HTML 的情况下,我们只能猜测。

使用调试器(例如 Firebug)来检查您的 HTML,它会向您显示该元素的样式来自何处。您可能还想通过验证器运行它,看看它是否真的被破坏了。

于 2012-05-25T13:24:56.633 回答