ODATA:URL中的特殊字符

ODATA:URL中的特殊字符,odata,Odata,我在创建ODataURL时遇到了一个问题 对于以下URL ?$filter=AccountID等式“1000024” 结果: - <m:properties> <d:ObjectID>00163E10AD0B1ED686EF458B4E8C51D5</d:ObjectID> <d:ParentObjectID>00163E10AD201EE5A4F0B592DE751AE8</d:ParentObjectID <

我在创建ODataURL时遇到了一个问题

对于以下URL

?$filter=AccountID等式“1000024”

结果:

- <m:properties>
    <d:ObjectID>00163E10AD0B1ED686EF458B4E8C51D5</d:ObjectID> 
    <d:ParentObjectID>00163E10AD201EE5A4F0B592DE751AE8</d:ParentObjectID
    <d:AccountID>1000024</d:AccountID> 
    <d:ContactID>1002636</d:ContactID>
    <d:FunctionCode>Z021</d:FunctionCode> 
    <d:Mobile>+33 123456789</d:Mobile> 
    <d:Phone>+33 987654321</d:Phone> 
  </m:properties>
-
00163E10AD0B1ED686EF458B4E8C51D5

00163E10AD201EE5A4F0B592DE751AE8原因是这些特殊字符在URL中使用时具有不同的含义。JavaScript“encodeUri”或“encodeUriComponent”不能解决这个问题

以下是在OData查询中使用时需要替换的特殊字符列表:

特殊字符
+
表示空格(并且空格不能在URL中使用),因此您需要用其十六进制值替换该字符,在本例中为
%2B

然后,更正后的过滤器应为
$filter=电话均衡器“%2B33 123456789”


找到一篇好文章。

您是否尝试过使用
%2B
而不是url中的特殊字符
+
?@AndreF:$filter=Phone eq“%2B 123456789”,我试过这个,但是运气不好。试试这个
$filter=Phone eq“%2B 33123456789”
,或者如果我们正在寻找一个完全匹配的,这个
$filter=Phone eq“%2B33 123456789”
,谢谢你,这个很好用。