【问题标题】:How to correctly encode characters in Azure Cosmos DB using Graph API如何使用 Graph API 在 Azure Cosmos DB 中正确编码字符
【发布时间】:2018-08-05 22:30:42
【问题描述】:

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

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

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

它在 Azure 门户的数据资源管理器中显示为 Stéphane。如果我尝试从 Gremlin 命令行查询顶点,我也没有得到正确的 name 返回值。

看来我对 Cosmos DB 中的数据编码有问题。

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

但是感觉很麻烦,我想知道是否可以做其他事情来存储具有正确编码的字符串?

【问题讨论】:

  • 我也有类似的问题。
  • 如果您仅在 azure 门户中看到此行为,请参阅下面的答案。虽然 gremlin 控制台对我也不起作用,但重音在我的 C# 代码中对我有用。

标签: azure-cosmosdb gremlin


【解决方案1】:

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

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

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

【讨论】:

  • 谢谢。我应该在使用 CosmosDB SDK 查询时检查该值 - 就像你说的那样,那里是正确的。
猜你喜欢
  • 2017-12-05
  • 2019-08-30
  • 2018-10-25
  • 2018-04-10
  • 2021-11-08
  • 1970-01-01
  • 2023-02-21
  • 2022-01-25
  • 2020-06-03
相关资源
最近更新 更多