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

Go语言中设置URL查询参数时整数转字符串错误问题求助

解决Go语言中整数转字符串导致URL参数异常的问题

嗨,这个问题我一眼就看明白啦——你用string(page)把整数转字符串的方式完全错了!

问题根源

在Go语言里,string(int)的作用是把整数当作Unicode码点转换成对应的字符,而不是把数字转换成它的字符串形式。比如你传入的page=1,对应的Unicode字符是不可见的SOH(起始头)字符,这个字符在URL编码后就变成了%01,这就是你看到异常的原因。

正确的解决办法

Go标准库的strconv包提供了专门的整数转字符串的方法,用strconv.Itoa(page)就能完美解决这个问题:

修改后的代码如下:

import (
    "net/url"
    "strconv" // 记得导入这个包
)

func createLink(title string, page int) string {
 url := url.URL{
 Scheme: "https",
 Host: "jsonmock.hackerrank.com",
 Path: "/api/movies/search/",
 }
 query := url.Query()
 query.Set("page", strconv.Itoa(page)) // 这里替换成正确的转换方法
 query.Set("title", title)
 url.RawQuery = query.Encode()
 return url.String()
}

另外,如果你不想导入strconv,也可以用fmt.Sprintf("%d", page)来实现同样的效果,不过strconv.Itoa在性能上会更优一些。

验证效果

修改后再运行代码,生成的URL就会变成你期望的样子:https://jsonmock.hackerrank.com/api/movies/search/?page=1&title=spiderman,完美解决问题!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 10:27:40