C# 如何逃离&;?

C# 如何逃离&;?,c#,salesforce,soql,C#,Salesforce,Soql,我试图在我的C#应用程序中通过Saleforce的REST客户端运行以下查询 Select Id, Name, Family FROM Product2 Where Name IN ('Connectivity - HMS','Database & Application Services', ....) 但出现以下错误: ('Connectivity - HMS','Database ^ 第1行:第83列:第1行:83不

我试图在我的C#应用程序中通过Saleforce的REST客户端运行以下查询

Select Id, Name, Family FROM Product2 Where Name IN ('Connectivity - HMS','Database & Application Services', ....)
但出现以下错误:

('Connectivity - HMS','Database 
                              ^
第1行:第83列:第1行:83不匹配字符“”处出错 应为“”“

如果我删除其中带有&的名称,效果很好

我正在使用ForceClient运行查询:

var client = new ForceClient(_instanceUrl, _accessToken, _apiVersion);
Task<QueryResult<dynamic>> queryResult = client.QueryAsync<dynamic>(query);
queryResult.Wait();
var client=newforceclient(\u instanceUrl,\u accessToken,\u apiVersion);
任务queryResult=client.QueryAsync(查询);
queryResult.Wait();
我尝试了许多不同的方法来替换<
Regex.replace,&\\&但没有任何效果


同一查询在开发人员控制台中运行良好。

为了通过HTTP链接将
&
字符作为参数值的一部分发送到服务器,例如:
'Database&Application Services'
,需要对其进行编码

在这种情况下,由于对服务器的调用是通过REST web服务进行的,并且REST服务使用URL和查询字符串,因此您应该对查询字符串进行编码,以确保作为参数一部分的所有非控制字符都正确编码

根据您的偏好或情况,使用以下三种方法之一:

System.Uri.EscapeDataString
System.Web.HttpUtility.HtmlEncode
System.Web.Mvc.Url.Encode
如果您在服务器端需要解码人们发送的内容,请使用:

Systen.Uri.UnescapeDataString
System.Web.HttpUtility.HtmlDecode
最后,如果您不在基于Web的项目中,有以下替代方案:

System.Net.WebUtility.UrlEncode
System.Net.WebUtility.UrlDecode

您能举一个例子说明如何将这个查询传递给REST服务器吗?我怀疑您可能需要对查询进行HtmlEncode,以便将其有效地传递到REST服务器。我已使用运行查询的详细信息更新了可能的副本。我曾尝试使用\\&来逃避,但没有成功。我可以想象这是一个类似于这里提到的错误:因此,只需尝试链接中类似的替换,只需替换您的'&'查询。替换(“+”,“%26”);对不起,我的意思当然是:query.Replace(&,“%26”);