我创建了一个static website,其中每个页面都有以下结构:
在本网站中,每个页面都复制了所有常见内容。为了提高可维护性,我重构了页面以使用服务器端包含(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的网站版本上没有正确显示。
答案 0 :(得分:3)
您正在以UTF-8的形式提供页面,这很好,但至少部分页面是从实际上未保存为UTF-8的文件中拖入的。 SSI只抛出原始字节,它不会尝试重新编码包含,以便它们的字符集与它们所包含的文件匹配。
您需要浏览所有html并在文本编辑器中包含文件,并确保每个文件都保存为UTF-8。
正如John所提到的,你可以通过对所有非ASCII字符使用字符引用来避免编码问题,但这是一个巨大的痛苦。
答案 1 :(得分:0)
您的HTML文档使用的是UTF-8编码,请尝试使用这些字符代码作为重音字母:http://www.tony-franks.co.uk/UTF-8.htm
答案 2 :(得分:0)
我遇到了和你一样的问题,最后找到了修复它的解决方案。
UTF8 makes an extra line on my site
将所有文件保存为UTF-8而不使用BOM(http://en.wikipedia.org/wiki/Byte_order_mark)。