如何逃脱&?
How to escape &?
我正在尝试 运行 在我的 C# 应用程序中通过 Saleforce 的 REST 客户端进行查询,
Select Id, Name, Family FROM Product2 Where Name IN ('Connectivity - HMS','Database & Application Services', ....)
但出现以下错误:
('Connectivity - HMS','Database
^
ERROR at Row:1:Column:83 line 1:83 mismatched character '< EOF >'
expecting '''
如果我删除其中包含 & 的名称,它会正常工作。
我正在使用 ForceClient 运行 查询:
var client = new ForceClient(_instanceUrl, _accessToken, _apiVersion);
Task<QueryResult<dynamic>> queryResult = client.QueryAsync<dynamic>(query);
queryResult.Wait();
我尝试了很多不同的东西来替换 & like Regex.Replace, &, \&
但没有任何效果。
相同的查询在 Developer Console 中运行完美。
为了通过 HTTP link 将 &
字符作为参数值的一部分发送到服务器,例如:'Database & Application Services'
需要对其进行编码。
在这种情况下,由于对服务器的调用是通过 REST Web 服务进行的,而 REST 服务使用 URL 和查询字符串,因此您应该对查询字符串进行编码以确保所有 non-control作为参数一部分的字符已正确编码。
根据您的喜好或情况,使用下面显示的三种方法之一:
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
我正在尝试 运行 在我的 C# 应用程序中通过 Saleforce 的 REST 客户端进行查询,
Select Id, Name, Family FROM Product2 Where Name IN ('Connectivity - HMS','Database & Application Services', ....)
但出现以下错误:
('Connectivity - HMS','Database
^
ERROR at Row:1:Column:83 line 1:83 mismatched character '< EOF >' expecting '''
如果我删除其中包含 & 的名称,它会正常工作。
我正在使用 ForceClient 运行 查询:
var client = new ForceClient(_instanceUrl, _accessToken, _apiVersion);
Task<QueryResult<dynamic>> queryResult = client.QueryAsync<dynamic>(query);
queryResult.Wait();
我尝试了很多不同的东西来替换 & like Regex.Replace, &, \&
但没有任何效果。
相同的查询在 Developer Console 中运行完美。
为了通过 HTTP link 将 &
字符作为参数值的一部分发送到服务器,例如:'Database & Application Services'
需要对其进行编码。
在这种情况下,由于对服务器的调用是通过 REST Web 服务进行的,而 REST 服务使用 URL 和查询字符串,因此您应该对查询字符串进行编码以确保所有 non-control作为参数一部分的字符已正确编码。
根据您的喜好或情况,使用下面显示的三种方法之一:
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