gpt4 book ai didi

google-app-engine - GAE 数据存储查看器中的 utf8 错误(Go 运行时)

转载 作者:数据小太阳 更新时间:2023-10-29 03:17:57 26 4
gpt4 key购买 nike

我正在使用 GAE 中的 Go 运行时编写 Web 应用程序。

我正在保存一个包含字符串的结构,它是用 MD5 对另一个字符串的字节进行哈希处理,然后用十六进制将哈希和字节编码为一个字符串的结果。

这是一些代码:

foo := "some string"
hashedFoo := md5.New()
hashedFoo.Write([]byte(foo))
encodedFoo := hex.EncodeToString(hashedFoo.Sum()) // this is what I'm assigning to my struct, and then saving into the Datastore

这工作正常,在保存或检索存储的实体(通过代码)时没有提示,但是,在加载数据存储查看器时,我收到一条错误消息,内容类似于“获取实体时出错:Property Foo is corrupt in数据存储”,然后是一个带有一堆对内部 GAE 文件的引用的回溯,然后是这个:“UnicodeDecodeError:'utf8' 编解码器无法解码位置 1 中的字节 0x85:意外代码字节”。这不会发生在本地开发 Datastore Viewer 中,只会发生在实时生产中。

所以我的问题是:hex.EncodeToString() 使用什么编码?有没有办法指定 utf-8 输出?这是一个 GAE 错误,还是一个糟糕的编码错误?

提前谢谢你。

最佳答案

问题是流氓行将 hashedFoo.Sum() 直接转换为字符串并将其分配给 encodedFoo。这产生了一些字符串,其中包含 utf-8 无法识别的字符。

hex.EncodeToString() 工作正常。

我想这是我自己的一个教训,让我的代码保持干净整洁:)

关于google-app-engine - GAE 数据存储查看器中的 utf8 错误(Go 运行时),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9057899/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com