Bre*_*ent 1 http-headers encoding apache-2.4
我的网站有 UTF-8 编码的页面和其他内容。对于 HTML,在元标记中设置编码是没有问题的。但是,我也有未正确显示的 UTF-8 编码的原始文本文件,例如?显示为×. 我曾考虑在此类文件的开头添加一个字节顺序标记,但我不想这样做,因为它们并不总是得到很好的支持。我按照this other question中的说明进行操作,但没有效果。这是 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
Run Code Online (Sandbox Code Playgroud)
我希望看到Content-Type: text/plain; charset=utf-8。如何为这些 URI 获得可靠的 UTF-8 编码?
对于 304 Modified 响应,不发送 Content-Type,因为此类响应没有内容正文。
查看 200 响应类型,您应该会看到这一点。使用 Ctrl + F5 强制刷新和 200 响应,而不是使用 304 响应重新验证缓存的响应。
然后您更新了您的问题以包含 200 响应,但我希望总是有一个Content-Type: text/plain标题或等效项(即使不包含字符集)但这不在您的示例中,所以不确定您是否有所有详细信息那?
无论如何,设置它的正确方法是将以下内容添加到您的 apache 配置中:
#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
Run Code Online (Sandbox Code Playgroud)
第(AddDefaultCharset)将设置的字符集text/plain和text/html资源。
第二个(AddCharset)需要 mod_mime 并将根据文件扩展名设置其他类型的字符集。Javascript 文件的内容类型为application/javascript,CSS 文件的内容类型为 ,text/css因此不会被 AddDefaultCharset 设置接收。.htm 和 .html 文件并不真正需要在此,因为默认情况下会被选中,但没有明确的危害。
我通过将这些行添加到“apache2.conf”来解决这个问题:
AddType text/plain .yml
AddDefaultCharset utf-8
Run Code Online (Sandbox Code Playgroud)
这是写这个答案的前一段时间了。最近安装的 Apache 可能已将 utf-8 设置为默认值。
| 归档时间: |
|
| 查看次数: |
17407 次 |
| 最近记录: |