Debug Inspector显示奇怪的字符?

问题描述 投票:1回答:1

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

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

任何输入将不胜感激!

obfuscated screenshot

string windows mongodb go intellij-idea
1个回答
1
投票

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

type ObjectId string

但它用于存储12个“任意”字节(“任意”意味着它不是由符文解释,并且它不是有效的UTF-8编码序列)。对于人类,它通常使用其字节的十六进制表示来显示。

调试器不会那么方便。他们认为这是一个string,所以他们试图将它显示为string(即使它并不意味着)。这不是Windows专用的东西,带有Delve调试器的Atom编辑器在Linux上也是这样做的。没什么好担心的。

如果你打印一个ObjectId,通常是fmt包的“东西”使用它的String()方法来获取要显示的string值。调试器不一定这样做。

© www.soinside.com 2019 - 2024. All rights reserved.