Go问答技术文章
-
Go ZIP 文件名乱码通常不是压缩内容损坏,而是文件名字节、UTF-8 标志和解压工具的本地编码解释不一致。本文从 archive/zip 的 Writer、Reader 和 NonUTF8 语义出发,给出创建端与旧包读取端的处理边界。352 收藏 -
Go tar 的 unexpected EOF 通常意味着头部、正文或外层输入提前结束。通过只读遍历保留条目名和读取阶段,区分正常 EOF、声明长度不足、生产端未收尾及压缩传输截断。372 收藏 -
Go 读取 CSV 时出现逗号字段错位,通常是把字段内容里的逗号当成了分隔符,或输入没有遵守引号规则。本文用 encoding/csv 说明 Reader、FieldsPerRecord、ParseError 和 Writer 的正确处理方式。109 收藏 -
围绕 Go tls.Config.VerifyConnection 说明握手回调顺序、ConnectionState 观测、恢复会话与自定义证书校验的边界,给出可落地的记录和错误返回方案。167 收藏 -
Go Reader 读到最后一行没有换行时,先区分输入没有终止符、Scanner 去掉换行和 EOF 处理顺序,再选择保留原文或在展示层显式补换行。264 收藏 -
Go OpenFile 追加写仍覆盖文件,通常不是 Write 本身失效,而是 flags 中混入 O_TRUNC、实际使用了 os.Create,或每次循环重新打开文件。本文按现象排查 flags、打开生命周期、Seek 与 WriteAt,给出可直接改造的追加写法。200 收藏 -
Go io.Copy 返回的写入长度与源文件大小不一致时,问题通常出在 Reader 范围、读取游标、目标文件尾部或字节与字符的单位差异。本文给出一套可执行的排查顺序,并说明已知长度时如何使用 io.CopyN。393 收藏 -
Go 查询参数中的裸加号会按空格处理,字面加号应编码为 %2B。本文区分查询与路径规则,给出 Values 编码示例,并解释重复解码、格式错误和签名地址的处理边界。460 收藏 -
Go 的 Request.WriteProxy 面向 HTTP 代理写出请求,会在请求行使用包含 scheme 和 host 的绝对 URI;本文区分 Write、WriteProxy、URL 与 RequestURI,给出代理调试时的排查思路。449 收藏 -
Go ServeMux 匹配不到路径时,按 Go 版本、路径段、尾斜杠、通配符、HTTP 方法和 Host 逐项排查,掌握 {id}、{path...} 与 {$} 的实际边界。480 收藏 -
Go TLS 出现 unknown authority 时,按服务端证书链、系统根证书池、私有 CA、自定义 RootCAs 和容器证书包逐项排查,避免用 InsecureSkipVerify 绕过校验。103 收藏 -
Go 的 Server.Shutdown 会等待活动连接回到空闲状态;如果请求、上游调用或长连接没有按预期结束,就会在上下文到期时返回超时。本文按负载、时间预算和连接类型拆解排查与修复方法。459 收藏 -
Golang · Go问答 | 1星期前 | 连接池 · 性能排查 · HTTP客户端 · Go问答 · Go 连接复用 MaxIdleConns http.Transport MaxIdleConnsPerHost MaxConnsPerHost
Go http.Transport 的 MaxIdleConnsPerHost 控制每个主机保留的空闲 keep-alive 连接数,不等于并发总数或所有主机总量。本文区分相关字段,并给出长期复用 Transport 的配置方式和连接复用排查路径。230 收藏 -
Go 客户端响应体读不到,通常不是一个原因:可能请求本身失败、Body 已经被消费、响应按协议没有内容,或读取过程中发生了错误。本文用 net/http 的真实返回关系拆开排查,并给出文本与 JSON 都能复用的读取写法。117 收藏 -
Go AddDate会对不存在的目标日期进行归一化,而非自动截到月末。本文比较日历偏移、月末截断与固定时长,给出CivilDate实现,并说明账期锚点、闰年和时区边界。348 收藏