如何在 OData 筛选器 URI 中转义单引号

how to escape single quote in odata filter uri?

本文关键字:URI 转义 单引号 筛选 OData      更新时间:2023-09-26

在JS中准备查询时,我试图以这种方式转义单引号:

_value.replace(/'/g,'%27')

这样:

_value.replace(/''/g,'''''');

两者似乎都不起作用

您可以在此处查看示例:http://services.odata.org/V3/Northwind/Northwind.svc/Orders?$select=Freight,CustomerID&$filter=ShipName+eq+'B's%20Beverages'&$format=json

有谁知道如何转义单引号?

谢谢

单引号需要加倍,例如:

ShipName+eq+'B''sBeverages'

而不是

ShipName+eq+'B'sBeverages'

使用此代码替换单引号...它的工作..

_value.replace(/'/g, '%27%27')
根据

http://docs.oasis-open.org/odata/odata/v4.01/cs01/part2-url-conventions/odata-v4.01-cs01-part2-url-conventions.html#sec_URLComponents 的示例 3

你需要用引号

转义引号(另外,不要忘记处理和:编码到%26(

所以"bit's & Bobs"变成了"Bit's %26 Bobs">