代码之家  ›  专栏  ›  技术社区  ›  ayls

如何使用图形API在Azure Cosmos DB中正确编码字符

  •  4
  • ayls  · 技术社区  · 6 年前

    我在Azure Cosmos DB graph中存储数据时遇到了一些字符编码问题。

    例如,如果我执行这样的查询以添加名为Stéphane的新顶点:

    g.addV('test-encoding').property('id','some id').property('name','Stéphane')
    

    它在Azure Portal的数据浏览器中显示为 Stphane公司 . 如果我试图从Gremlin命令行查询顶点,我也不会得到返回的name的正确值。

    所以我似乎对Cosmos DB中的数据编码有问题。

    在另一个 question 建议在创建顶点之前对数据进行Url编码,然后在需要读取时对其进行Url解码。

    然而,这感觉很麻烦,我想知道是否还有其他方法可以用正确的编码来存储字符串?

    1 回复  |  直到 6 年前
        1
  •  4
  •   Laurent Nguyen    6 年前

    您的查询是正确的。属性值实际上正确保存在CosmosDB中(使用正确的重音)。

    这是门户数据资源管理器中的一个呈现错误:当查询CosmosDB时,数据资源管理器无法正确解码包含这两个字节utf-8字符的响应,并且将在数据资源管理器的图形UI选项卡和JSON选项卡中显示两个不同的字符,而不是一个。 Data Explorer的下一次部署中将出现修复。

    如果您使用的是CosmosDB SDK或gremlin控制台,则可以直接查询图形并验证是否正确存储了“Stéphane”。