Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
设置';字符集';属性,该属性位于golang HTTP文件服务器中的内容类型标头上_Http_Go_Character Encoding - Fatal编程技术网

设置';字符集';属性,该属性位于golang HTTP文件服务器中的内容类型标头上

设置';字符集';属性,该属性位于golang HTTP文件服务器中的内容类型标头上,http,go,character-encoding,Http,Go,Character Encoding,我在测试golang web应用程序时遇到问题。在部署版本中,nginx面向应用程序并显式设置charset utf8以便所有文本内容类型都附加一个字符集声明 在测试中,我直接访问golang应用程序,这里的内容类型没有字符集。当尝试为库提供服务时,这会导致问题,例如: var ε = 1e-6, ε2 = ε * ε, π = Math.PI, τ = 2 * π, τε = τ - ε, halfπ = π / 2, d3_radians = π / 180, d3_degrees = 18

我在测试golang web应用程序时遇到问题。在部署版本中,nginx面向应用程序并显式设置
charset utf8
以便所有文本内容类型都附加一个字符集声明

在测试中,我直接访问golang应用程序,这里的内容类型没有字符集。当尝试为库提供服务时,这会导致问题,例如:

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声明的最佳方法是什么?

文件服务器调用以获取内容类型。如果没有为扩展名注册任何类型,则文件服务器调用以根据文件内容猜测类型

如果文本/内容类型未指定字符集参数,则mime包会自动将“charset=utf-8”参数添加到内容类型

要调试此问题,请检查system mime.types文件是否为文件扩展名指定了内容类型,以及charset参数是否为'charset=utf-8'或charset参数是否未设置


如果system mime.types条目丢失或不正确,则调用重写系统设置。在提供任何内容之前可以调用一次。

我想你指的是Go HTTP服务器,而不是Chrome?只需将
w.Header().Set(“Content-Type”,“text/html;charset=utf-8”)
(如果是内容类型)放在相关处理程序中,和/或放在中间件中,将其应用于多个处理程序。Erk,修复了输入错误。我正在使用文件服务器为不同文件和mimetype的目录提供服务,因此手动设置它可能不会真正起作用,除非我重新实现现有的内容类型嗅探。我尝试将
mime.AddExtensionType(“.js”,“application/javascript;charset=utf8”)
作为
main()
中的第一行,但没有任何区别。另外,当我在OSX上进行测试时,在linux上进行相同的测试导致
js
文件被用作
application/javascript
,而没有一个字符集参数。edit这个程序似乎仍然在mac上作为
application/javascript
提供javascript:好吧,这很奇怪-它现在也适用于我。我想我遇到了chrome缓存问题。