%!B(MISSING)fmt.Printf和log.Println之间的不同输出

时间:2014-07-30 09:36:21

标签: go

我从json.Marshal返回了一些字节。如果将它们记录到这样的stdout:

log.Println(string(b))

它们输出如下:

{"encoded":"%2B"}

如果我用

将它们写入磁盘
fmt.Fprintf(w, string(b))

然后抓住他们写的文件:

{"encoded":"%!B(MISSING)"}

据我所知,string(b)的输出确实是第一个,也是我预期的输出。我究竟做错了什么?

1 个答案:

答案 0 :(得分:4)

Fprintf将格式定义作为第一个参数。 "%2B"被解释为格式化指令,您缺少以下参数。

也许您想使用Fprint