将编码字符串添加到 http 响应似乎用 !F(MISSING) 替换了一些字符。如何防止?输出:{"encodedText":"M6c8RqL61nMFy%!F(MISSING)hQmciSYrh9ZXgVFVjO"}代码:package mainimport ( "encoding/json" "fmt" "net/http" "net/url")type EncodeResult struct { EncodedText string `json:"encodedText"`}func main() { http.HandleFunc("/encodedString", encodedString) _ = http.ListenAndServe(":8080", nil)}func encodedString(w http.ResponseWriter, r *http.Request) { inputString := "M6c8RqL61nMFy/hQmciSYrh9ZXgVFVjO" er := EncodeResult{url.QueryEscape(inputString)} response, _ := json.Marshal(er) w.Header().Set("Content-Type", "application/json") fmt.Fprintf(w, string(response))}
2 回答
郎朗坤
TA贡献1921条经验 获得超9个赞
您正在使用转义值“M6c8RqL61nMFy%2FhQmciSYrh9ZXgVFVjO”作为这一行的格式字符串:
fmt.Fprintf(w, string(response))
Fprintf 尝试格式化动词“%2F”的参数。没有参数,因此 Fprintf 为动词打印 "%!F(MISSING)"。
解决方法是不将输出用作格式字符串。因为写入响应时不需要任何格式,所以将最后一行更改为:
w.Write(response)
- 2 回答
- 0 关注
- 264 浏览
添加回答
举报
0/150
提交
取消