Azure CosmosDB:文档 ID 中存在非法字符

que*_*tzt 4 identifier azure azure-cosmosdb

我遇到的问题是,基于某些输入生成的 ID 包含字符“/”。这会导致更新插入操作期间出现错误,因为文档 ID 中不允许使用“/”。

除此之外还有哪些字符是不允许的?遇到这样的情况有什么方法可以处理呢?

que*_*tzt 7

非法字符是/, \\, ?, #(请参阅https://learn.microsoft.com/en-us/dotnet/api/microsoft.azure.documents.resource.id?view=azure-dotnet

遇到这种情况的处理方法:

  • 删除用于生成 id 的输入中已有的字符
  • 将 id 中的字符替换为另一个字符/字符集
  • 使用散列/编码(例如 Base64)

如果您知道更好的方法请分享。谢谢

  • Base64编码可以在结果中返回/,所以仍然有可能存在非法字符,对吗? (4认同)
  • `System.Net.WebUtility.UrlEncode` 将使用 % 转义序列对所有这些字符进行编码。 (3认同)