在 golang HTTP FileServer 中设置 Content-Type 标头的 'charset' 属性

2024-02-29

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

在测试中,我直接访问 golang 应用程序,这里的内容类型没有字符集集。当尝试为类似的库提供服务时,这会导致问题d3 https://github.com/mbostock/d3/blob/v3.5.6/d3.js#L1261其中有如下行:

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.TypeByExtension http://godoc.org/mime#TypeByExtension获取内容类型。如果没有为扩展注册类型,则 FileServer 调用http.DetectContentType http://godoc.org/net/http#DetectContentType从文件内容猜测类型。

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

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

如果系统 mime.types 条目丢失或不正确,则调用mime.AddExtensionType http://godoc.org/mime#AddExtensionType覆盖系统设置。可以在提供任何内容之前调用一次。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 golang HTTP FileServer 中设置 Content-Type 标头的 'charset' 属性 的相关文章

  • 有没有办法从另一个包访问结构体的私有字段?

    我在一个包中有一个具有私有字段的结构 package foo type Foo struct x int y Foo 另一个包 例如 白盒测试包 需要访问它们 package bar import foo func change foo f
  • 不加载隐藏图像

    我的网站上有一堆隐藏图像 它们的容器 DIV 具有 style display none 根据用户的操作 某些图像可能会通过 JavaScript 显示 问题是我的所有图像都是在打开页面时加载的 我想通过仅加载最终可见的图像来减轻服务器的压
  • Rails api 中阻止用户配置文件的最佳 HTTP 状态代码是什么?

    我在 Rails 中为社交应用程序编写了一个 API 这个应用程序就像Facebook一样 用户可以阻止其他用户 如果用户 A 阻止用户 B 则用户 B 无法查看用户 A 的个人资料页面 那么我应该返回的最佳 HTTP 代码状态是什么 40
  • 指针上定义的方法仍然可以用值调用

    Effective Go 文档说明如下 关于接收者的指针与值的规则是 可以在指针和值上调用值方法 但只能在指针上调用指针方法 http tip golang org doc effective go html pointers vs val
  • 如何找出数据包的HTTP头长度?

    我知道如何手动执行此操作 通过查看十六进制转储 我怎样才能自动获得相同的信息 我必须使用 API 吗 我有wireshark 和Microsoft 网络监视器 这可以通过简单地实现Lua解析器 http wiki wireshark org
  • eBay API 调用不适用于 UPC/EAN

    eBay 的 API findItemsByProduct 操作适用于 UPC 和 EAN 但不幸的是它不起作用 例如 下面的 HTTP GET 请求会抛出 无效的产品 ID 值 错误41 Note 请将 SECURITY APPNAME
  • 为什么http使用CRLF作为行分隔符?

    据我所知 使用LF因为行分隔符非常流行 但我想知道为什么许多文本协议 如 HTTP FTP 使用CRLF作为它的行分隔符 我不认为这些协议是为旧打字机发明的 那么这有什么历史原因吗 我尝试通过谷歌 stackoverflow 和维基百科搜索
  • 汉字编码?

    我有一个用例 我通过发布请求向 spring 控制器提交参数 在控制器中 我正在读取参数并执行一些操作 之后 我将这些参数作为请求参数的一部分发送到其他 URL 在这里我无法处理中文字符 它变得乱码 我现在正在做的行动 1 我将下面的中文文
  • .NET:如何判断编码是否支持字符串中的所有字符?

    我需要输出大量文本 其中包括多种语言的各种字符 有时我需要以 Unicode 以外的字符编码 例如 Shift JIS 或 ISO 8859 2 输出文本 以便匹配它要访问的页面 如果文本中包含编码无法处理的字符 例如 ISO 8859 2
  • 为什么 DER ASN.1 大整数的解组在 Golang 中仅限于 SEQUENCE?

    我希望能够使用encoding asn1 包从 DER 文件中解组一个大整数 但它看起来只适用于整数序列 例如 这不起作用 这很奇怪 因为 Big Int 的编组效果很好 https play golang org p Wkj0jAA6bp
  • Crystal lang如何从http获取二进制文件

    In Ruby require open uri download open http example com download pdf IO copy stream download my file pdf 如何在水晶中做同样的事情 我们
  • Java:如何检测(并更改?)System.console 的编码?

    我有一个在控制台上运行的程序 其变音符号和其他特殊字符在 Mac 上以 的形式输出 这是一个简单的测试程序 public static void main String args System out println h h System
  • OSX 上的 Java 7 使用 jnlp/webstart 时出现文件名编码问题

    我遇到了这个问题 经过几天的搜索和解决方法尝试均未成功 我现在有一个由 jnlp webstart 分发的内部 java swing 程序 在 osx 和 windows 计算机上 除其他外 它还从 WebDav 下载一些文件 最近 在装有
  • 如何通过在切片上查找来从切片复制到数组

    我正在编写一个库来处理二进制格式 我有一个带有数组变量的结构 我想保留它以用于文档目的 我还需要从输入字节片中查找和判断 一些伪代码 type foo struct boo 5 byte coo 3 byte func main input
  • Web请求编码问题

    您好 我遇到以下代码的编码问题 有什么想法吗 string url http www google com ig api weather istanbul TR hl tr HttpWebRequest request WebRequest
  • 法语和西班牙语的特殊字符可以保存在 varchar 中吗?

    法语和西班牙语中有普通英语中不使用的特殊字符 重音元音等 varchar 是否支持这些字符 或者我需要一个 nvarchar 吗 注 我愿意NOT希望讨论我是否应该使用 nvarchar 还是 varchar 您在谈论什么 SQL 实现 我
  • golang中如何将相对路径解析为绝对路径?

    节点中是否有类似 path resolve 的API 或者有什么东西可以做同样的事情 例如 nodejs代码 path resolve sample sh 应该得到 home currentuser sample sh 解决 表示用户主目录
  • 如何在 Go 中获取给定月份的第一个星期一?

    我正在尝试获取给定月份的第一个星期一 我能想到的最好方法是循环前 7 天 然后返回 Weekday Monday 有一个更好的方法吗 通过查看时间的 Weekday 您可以计算出第一个星期一 package main import fmt
  • Go 指针 - 通过指针将值附加到切片

    我有一个 struct ProductData 及其实例 p 它有一个切片属性 type ProductInfo struct TopAttributes map string interface 我想设置 TopAttributes 如下
  • 无法在 git 上获取 Http 工作

    我在拇指驱动器上使用 gitbash 作为 git 我的防火墙阻止了我 并且想设置我的 git 以进行 http 访问 我使用 github 并且已经看到了有关如何执行此操作的各种信息 但我还不够了解 无法让它为我自己工作 我在 php i

随机推荐

  • 如何使Bootstrap的悬停下拉菜单?

    如何使 twitter bootstrap 的菜单下拉菜单悬停而不是单击 1 Hide 下拉式菜单 on 鼠标移到 document ready function nav li dropdown hover function this ad
  • 是否可以在 Powershell 中使用 Send-PnPMail 发送附件?

    是否可以在 Powershell 中使用 Send PnPMail 发送附件 Send PnPMail To requestor Subject Teams App Provisioning Delta Load Get Date Body
  • 如何在 HighCharts 上绘制垂直线?

    我想追踪当天的垂直时间线 但我没有在 HighCharts 文档中找到解决方案 像这样 您正在寻找情节主线 请参阅此处的文档 http api highcharts com highcharts xAxis plotLines http a
  • 从 Android 中的 URL 方案打开我的应用程序

    我知道有几个关于此的问题 但没有一个可以帮助解决我的问题 我希望能够单击来自电子邮件 文本 浏览器并打开我的应用程序 我有AndroidManifest xml code
  • 连续循环页面(不是无限滚动)

    我正在寻找创建滚动功能的资源 例如在这些网站上找到的资源 前哨日记 http www outpostjournal org Unfold http unfold no 一旦滚动条到达页面底部 我希望它循环回到顶部 我对无限滚动很熟悉 但这不
  • Excel - 提取前 5 个值

    我想提取前 5 名选手基于每个员工的销售额 没有数据透视表 自动过滤器 参考我的输入和输出截图 Snapshot https i stack imgur com zYElg png 有什么建议 如何获得前 5 名排名 即使重复 如屏幕截图所
  • 相当于 XHR 或 Ajax 库中的 Fetch 'no-cors' 模式?

    有没有办法在现有的 大多数浏览器支持的 HTTP 请求中写入 fetch mode no cors 举个例子 我想知道是否可以翻译 fetch url mode no cors then function response console
  • Chrome 开发者工具工作区映射

    谁能告诉我 Chrome 开发者工具工作区映射是如何工作的 我相信目前它仅在加那利可用 我认为它应该允许我在元素视图中更改 CSS 规则 并将它们自动保存到本地文件中 正如 Paul Irish 在 Google IO 2013 上演示的那
  • 搅拌机谷歌Colab

    直到几天前 我还能够使用 GPU 在 Google Colab 上无头运行 Blender 或 sheshe it 是的 我检查了三次我选择了 GPU 实例 现在运行 keras tensorflow 确实工作正常 但 Blender 根本
  • TFS 中的错误、问题和任务之间有什么区别[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 谁能给我一个关于 TFS 中错误 问题和任务之间差异的简短解释 For the Scrum TFS 流程模板 https msdn m
  • 无法从 aws lambda 层导入模块

    我有一个 pip 包的需求文件 我将其安装在目标文件夹中并压缩内容并将其上传到 AWS lambda 层 要求 txt asgiref 3 2 3 certifi 2019 11 28 chardet 3 0 4 cloudevents 0
  • 根据 Pandas 中的多个条件过滤分组行

    给定一个数据框如下 city district date price 0 bj cy 2019 03 01 NaN 1 bj cy 2019 04 01 6 0 2 sh hp 2019 03 01 4 0 3 sh hp 2019 04
  • 带有嵌套对话框的选项卡控件中的选项卡顺序 (WS_EX_CONTROLPARENT)

    在 Win32 API C 项目中 我有一个带有选项卡控件 3 个选项卡 的对话框和作为该选项卡控件的子项的 3 个对话框 我使用 DialogBoxParam 加载带有选项卡控件的主对话框 并使用 CreateDialogParam 从资
  • UIPickerview 组件中带有标签的图像

    我的 UIPickerView 有两列 在一列中我想在其旁边显示图像和标签 有用 显示和图像和标签 只是标签在图像下面如何将图像放在左侧 标签放在右侧 我尝试将标签更改为右对齐 但它不起作用 UIView pickerView UIPick
  • 如何添加全局动作事件监听器?

    如何添加全局动作事件监听器 我试过了 Toolkit getDefaultToolkit addAWTEventListener this AWTEvent ACTION EVENT MASK 但它不起作用 示例 要侦听应用程序中的所有 M
  • FileNotFoundException 打开失败:在 Android 上将图像文件保存到内部存储期间 EPERM(不允许操作)

    当我尝试将图像保存到 Android 上的内部存储时 我遇到了这个问题 public static String setImage Bitmap image if image null FileOutputStream outputStre
  • Tkinter Optionmenu 小部件中相同值的索引

    我正在尝试访问选项菜单小部件中相同值的索引 在下面的代码中 无论我选择两个 b 字符中的哪一个 列表中的字符 b 都会返回索引 1 我需要根据列表中的索引位置区分两个 b 字符 即从选项菜单小部件中选择第一个 b 应返回索引 1 而第二个
  • 如何在Android中读取套接字输入流

    can anybody tell me how to read socket input stream Here is my code if serverIpAddress equals try InetAddress serverAddr
  • 在源代码管理中存储 SSL 证书

    只要您不存储私钥 将 Web 应用程序的 SSL 证书存储在源代码存储库中是否会存在安全问题 使用源代码管理来备份此类内容是多么容易 我有点被宠坏了 并且想充分利用它 但我也不想草率地使用它 或危及安全 不需要 证书是公开的 服务器将在每次
  • 在 golang HTTP FileServer 中设置 Content-Type 标头的 'charset' 属性

    我在测试 golang Web 应用程序时遇到问题 在部署版本中 nginx 位于应用程序前面并显式设置charset utf8 以便所有文本类型都附加字符集声明 在测试中 我直接访问 golang 应用程序 这里的内容类型没有字符集集 当