oData 查询中如何处理特殊字符?
怎么样? oData 中以下查询中处理的符号?
/vendordataservice.svc/vDataMapper_SourceMapVendor?&$filter=startswith(ParentName,'AT&T')&$top=7&$skip=0
我正在使用 EF3.5 和 SQL2008。当我将其发送到我的 oData 服务时,我没有收到任何数据。
How is the & symbol handled in the following query in oData?
/vendordataservice.svc/vDataMapper_SourceMapVendor?&$filter=startswith(ParentName,'AT&T')&$top=7&$skip=0
I'm using EF3.5 and SQL2008. When I send that to my oData service I get no data back.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
不要使用“JavaScript String Replace() 方法”。它将替换第一次出现的特殊字符。如果过滤参数中出现两次相同的特殊字符,则过滤失败。所以使用正则表达式来替换字符。
另请注意,由于替换内容还包含
%
,因此应在开头替换%
本身Do not use the “JavaScript String replace() Method”. It will replace the first occurrence of the special characters. If you have 2 occurance of the same special characters in the filtering parameter, it will fail. So use the regular expression to replace the characters.
Also pay attention, since the replacements also contains
%
then%
itself should be replaced at the beginning以下是通过 HTTP 发送到 SQL Server 之前应编码的字符列表:
http://msdn.microsoft.com/en-us/library/aa226544(SQL.80).aspx
是的, '&'符号就是其中之一。
Here is a list of characters that should be encoded prior to sending to SQL server over HTTP:
http://msdn.microsoft.com/en-us/library/aa226544(SQL.80).aspx
Yes, the '&' symbol is one of them.
如果过滤器参数被视为单个单词,您可以在参数前后附加单引号的 ASCII 值,如下所示
%27AT&T%27
if the filter parameter is seen as a single word you can append ASCII value of single quote before and after the param like this
%27AT&T%27