【发布时间】:2015-11-24 21:51:09
【问题描述】:
我在测试 golang 网络应用时遇到了问题。在已部署的版本中,nginx 位于应用程序前面并显式设置charset utf8;,以便所有文本内容类型都附加一个字符集声明。
在测试中,我直接打了 golang 应用程序,这里的内容类型没有字符集集。这在尝试为 d3 之类的库提供服务时会导致问题,其中包含以下行:
var ε = 1e-6, ε2 = ε * ε, π = Math.PI, τ = 2 * π, τε = τ - ε, halfπ = π / 2, d3_radians = π / 180, d3_degrees = 180 / π;
因为 golang 没有指定字符集,所以这些在 chrome 中呈现为:
var ε = 1e-6, ε2 = ε * ε....
让 golang http 服务器在 HTTP 标头上输出 charset=utf8 声明的最佳方法是什么?
【问题讨论】:
-
我假设您的意思是 Go HTTP 服务器,而不是 Chrome?只需
w.Header().Set("Content-Type", "text/html; charset=utf-8")(如果这是内容类型)在相关处理程序中,和/或在中间件中将其应用于多个处理程序。 -
Erk,修正了错字。我正在使用文件服务器来提供不同文件和 mimetypes 的目录,因此手动设置它可能不会真正起作用,除非我重新实现现有的内容类型嗅探。
标签: http go character-encoding