我正在GAE中使用Go运行时编写Webapp。
我正在保存一个包含字符串的结构,这是使用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
这样可以很好地工作,在保存或检索存储的实体(通过代码)时不会有任何抱怨,但是,在加载数据存储查看器时,出现类似“ Error fetching entities: Property Foo is corrupt in the datastore”之类的错误,然后回溯中包含一堆内部引用GAE文件,然后输入:“ UnicodeDecodeError: 'utf8' codec can't decode byte 0x85 in position 1: unexpected code byte”。在本地开发数据存储查看器中不会发生这种情况,只有在实时生产环境中才会发生这种情况。
所以我的问题是:hex.EncodeToString()使用什么编码?有没有办法指定utf-8输出?这是GAE错误,还是编码错误?
慕桂英4014372
相关分类