C# 如何逃离&;?
我试图在我的C#应用程序中通过Saleforce的REST客户端运行以下查询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不
Select Id, Name, Family FROM Product2 Where Name IN ('Connectivity - HMS','Database & Application Services', ....)
但出现以下错误:
('Connectivity - HMS','Database
^
第1行:第83列:第1行:83不匹配字符“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”);