使用包含撇号的值进行 REST 调用

REST Call with values containing apostrophe

我使用 REST 和 ajax 使用以下方法从 SharePoint 获取数据:

https:xxxxxxxx/_vti_bin/ListData.svc/RMSD_Tasks?$orderby=IssueValue asc,StatusValue desc&$filter="+dropValue+" eq '"+secondFilterVal+"'&groupby=IssueValue/StatusValue

除一种情况外,一切正常。有时 secondFilterVal 的值是 "Manager's Bulletins" 带撇号。当我打电话时,我收到一条错误的请求消息。我可以在这里做什么?不幸的是,无法更改文本 "Manager's Bulletins"。我正在考虑使用“$filter=substringof.....”,但它与其他所有东西配合得很好。谢谢!

感谢@Lauri 和@charlietfl 的评论。 @charlietfl 给我的信息特别有用,因为它让我看到了不同的选择,而 encodeURIComponent() 是可行的方法。阅读 MDN 的 encodeURIComponent() and this great link to REST Filters 帮助我使用上面的代码解决了我的问题:

出于某些奇怪的原因,您需要两次撇号:结果 Manager%27%27s%20Bulletins 完美无缺。

var str = fixedEncodeURIComponent("Manager's Bulletins");

function fixedEncodeURIComponent(src) {
    return encodeURIComponent(src).replace(/[!'()*]/g, function (c) {
        return '%' + c.charCodeAt(0).toString(16) + '%' + c.charCodeAt(0).toString(16);
    });
}