You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

连接Cosmos DB模拟器时如何转义@符号?

解决Cosmos DB模拟器连接时@符号的转义问题

遇到连接字符串里@符号的转义问题很常见,具体处理方式要看你使用@符号的场景,下面分几种情况说明:

1. 连接字符串的AccountEndpoint中包含@符号(比如自定义用户名带@)

如果你的AccountEndpoint URL里的用户名部分本身包含@(比如https://user@domain:8081),这时候URL中的@是特殊分隔符,必须URL编码为%40才能正确识别。举个例子:

原URL:

https://myuser@example.com:8081/

转义后的URL:

https://myuser%40example.com:8081/

对应的完整连接字符串示例:

AccountEndpoint=https://myuser%40example.com:8081/;AccountKey=C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==;

2. 代码中字符串里的@符号转义

在不同编程语言里,处理字符串内的@符号逻辑不同:

  • C#:如果用普通字符串,@符号不需要转义;如果用逐字字符串(前缀带@),同样直接写@即可,比如:
    // 普通字符串
    string connStr = "AccountEndpoint=https://myuser%40example.com:8081/;AccountKey=your-key;";
    // 逐字字符串
    string connStr = @"AccountEndpoint=https://myuser%40example.com:8081/;AccountKey=your-key;";
    
  • Python:字符串中的@直接写入即可,无需额外转义:
    import azure.cosmos.cosmos_client as cosmos_client
    conn_str = "AccountEndpoint=https://myuser%40example.com:8081/;AccountKey=your-key;"
    client = cosmos_client.CosmosClient.from_connection_string(conn_str)
    

3. 命令行/终端中使用含@的参数

如果是在终端或命令行工具中传递含@的参数(比如给模拟器指定自定义账号名),需要用**反斜杠**转义@符号:

# 示例:启动模拟器时指定带@的账号名
CosmosDB.Emulator.exe /AccountName=myuser\@example

总结一下:核心是区分场景——URL中的@用%40编码,命令行中的@用\转义,代码字符串里的@直接写就行。

内容的提问来源于stack exchange,提问作者Alex Ch

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:19:37