Debug Inspector显示奇怪的字符?

时间:2017-01-24 00:24:47

标签: string windows mongodb go intellij-idea

我第一次进入Go并最终在我的Win10机器上运行。终于在IntelliJ IDEA内部得到了断点,我在调试器窗口中看到了这样的东西。那些unicode字符的混乱实际上应该是来自MongoDB的24个字符的HEX ID。

我最好的猜测是 mgo 不能正确解组ObjectId个对象,但对于任何运行linux的开发人员来说这似乎都不是问题或macOS,所以它可能只是一个Windows的东西?

任何意见都会受到赞赏!

obfuscated screenshot

1 个答案:

答案 0 :(得分:1)

这里没有错误。 bson.ObjectId的基础类型为string

type ObjectId string

但它用于存储12"任意" bytes("任意"表示它不是由符文解释,并且它不是有效的UTF-8编码序列)。它通常使用其字节的十六进制表示形式显示给人类。

调试人员不会那么方便。他们认为它是string,因此他们会尝试将其显示为string(即使它并不意味着)。这不是Windows专用的东西,带有Delve调试器的Atom编辑器在Linux上也是这样做的。无需担心。

如果您打印ObjectId,通常是fmt包"""使用其String()方法获取要显示的string值。调试器不一定那样做。