如何在Apache中configurationUTF-8 Content-Type标头?

我的网站有UTF-8编码的页面和其他内容。 对于HTML,在元标记中设置编码是没有问题的。 但是,我也有UTF-8编码的原始文本文件显示不正确,如显示为× 。 我曾经考虑过在这样的文件的开头添加一个字节顺序的标记,但是我不希望这样做,因为它们并不总是得到很好的支持。 我按照其他问题的指示,但没有任何效果。 这是HTTP响应头:

 HTTP/1.1 200 OK Date: Sat, 12 Aug 2017 15:41:04 GMT Server: Apache/2.4.10 (Debian) Last-Modified: Wed, 09 Aug 2017 19:24:33 GMT ETag: "c04c-5565707a34966" Accept-Ranges: bytes Content-Length: 49228 Keep-Alive: timeout=5, max=100 Connection: Keep-Alive 

我希望看到Content-Type: text/plain; charset=utf-8 Content-Type: text/plain; charset=utf-8 。 如何为这些URI获得可靠的UTF-8编码?

内容types不发送304修改响应,因为没有这样的响应内容正文。

看200响应types,你应该看到这个。 使用Ctrl + F5强制执行刷新和200响应,而不是使用304响应重新validationcaching的响应。

然后,您更新了您的问题,以包含一个200响应,但我希望始终有一个Content-Type: text/plain标题或等效(即使不包含字符集),但不是在您的示例,所以不确定你有所有的细节呢?

无论如何,设置这个的正确方法是将以下内容添加到您的apacheconfiguration中:

 #Set the correct Char set so don't need to set it per page. AddDefaultCharset utf-8 #for css, js, etc. AddCharset utf-8 .htm .html .js .css 

第一个( AddDefaultCharset )将设置text/plaintext/html资源的字符集。

第二个( AddCharset )需要mom_mime,并将基于文件扩展名设置其他types的字符集。 JavaScript文件是与application/javascript内容types发送和CSS文件发送内容types的text/css所以不AddDefaultCharset设置拾取。 .htm和.html文件并不需要在这里,因为默认情况下会被拾取,但没有明确的伤害。