4

我创建了一个静态网站,其中每个页面都具有以下结构:

  1. 常见的东西,如标题、菜单等。
  2. 主要内容 div 中的页面特定内容
  3. 页脚

在这个网站中,所有常见的内容都在每个页面中重复。为了提高可维护性,我重构了页面以使用服务器端包含(SSI),这样公共内容就不会重复。现在每个页面的结构是

  1. SSI 用于常见的东西,如标题、菜单等。
  2. 主要内容 div 中的页面特定内容
  3. 页脚的 SSI

在重构的站点中,由于某种原因,法语字符在特定于页面的内容区域中不再正确显示,尽管它们在通过 SSI 包含的内容中显示良好。

包含的标头将字符集指定为:

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

如果我在浏览器中打开其中一个主要内容页面,它会告诉我字符编码是 ISO-8859-1。我尝试使用以下行将 .htaccess 文件添加到文件夹中

AddDefaultCharset UTF-8
AddCharset UTF-8 .shtml
AddCharset UTF-8 .html

但是那些讨厌的法国口音仍然无法在使用 SSI 的网站版本上正确显示。

4

3 回答 3

3

您将页面提供为 UTF-8,这很好,但至少有一些页面是从实际上未保存为 UTF-8 的文件中拖入的。SSI 只是将原始字节扔进去,它不会尝试重新编码包含,以便它们的字符集与它们被包含到的文件相匹配。

您需要浏览所有 html 并在文本编辑器中包含文件,并确保每个文件都保存为 UTF-8。

正如 John 所提到的,您可以通过对所有非 ASCII 字符使用字符引用来避免编码问题,但这是一个巨大的痛苦。

于 2009-02-12T02:46:07.083 回答
0

我遇到了和你一样的问题,终于找到了解决方法。

UTF8 在我的网站上增加了一行

将所有文件保存为不带 BOM 的 UTF-8 ( http://en.wikipedia.org/wiki/Byte_order_mark )。

于 2011-05-29T22:46:03.540 回答
0

您的 HTML 文档使用 UTF-8 编码,请为您的重音字母尝试以下字符代码:http ://www.tony-franks.co.uk/UTF-8.htm

于 2009-02-12T01:46:00.050 回答