You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Go Web应用模板展示国旗图片时src含%0A的问题求助

解决Go模板中国旗图片URL出现%0A的问题

你遇到的%0A其实是换行符的URL编码,问题根源出在从ipinfo.io获取国家代码的步骤里:ioutil.ReadAll(resp3.Body)会把响应里的所有字节(包括接口返回内容末尾的换行符)全部读出来,转成字符串后自然带着换行,模板渲染时这个换行符就会被编码成%0A,导致图片路径错误。

下面给你两种简单的解决办法:

方法一:用strings.TrimSpace()清理空白字符

这是最通用的方式,它会去掉字符串两端所有的空白字符(包括换行、空格、制表符等):

import "strings"
// ...
resp3, err := http.Get("https://ipinfo.io/country")
if err != nil {
    fmt.Println(err)
    // 建议这里添加错误兜底逻辑,比如设置默认国家代码
    country = "US"
}
defer resp3.Body.Close() // 务必关闭响应体,避免HTTP连接泄漏
bytes3, _ := ioutil.ReadAll(resp3.Body)
country := strings.TrimSpace(string(bytes3))

方法二:精准移除末尾的换行符

如果你确定接口返回的内容只有末尾带换行,可以用strings.TrimSuffix()精准清理:

import "strings"
// ...
bytes3, _ := ioutil.ReadAll(resp3.Body)
country := strings.TrimSuffix(string(bytes3), "\n")
// 兼容可能存在的回车符(部分接口会返回\r\n)
country = strings.TrimSuffix(country, "\r")

处理后的country变量就不会带有换行符了,模板渲染出来的图片路径会变成预期的images/BE.png,国旗就能正常加载啦。

内容的提问来源于stack exchange,提问作者joske123

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 08:37:05