我正在尝试从OneDrive Search API过滤搜索内容。这是没有过滤器的请求,其中原始查询关键字是中英字典,其UTF-8编码值为%25E4%25B8%25AD%25E8%258B%25B1%25E5%25AD%2597%25E5%2585%25B8
没有过滤器的请求就是这样。
https://api.onedrive.com/v1.0/drive/root:%2F:/view.search?q=%25E4%25B8%25AD%25E8%258B%25B1%25E5%25AD%2597%25E5%2585%25B8&access_token= $的access_token
用例是在keyword
中找到匹配的name
,因此我需要添加filter=contains(name,'$keyword')
之类的过滤器。
过滤器的相应请求是
第一个请求将为我提供ascii和非ascii字符的正确结果,但第二个请求仅为ascii字符提供正确的结果,并且不适用于url编码的UTF-8字符(仅返回空结果)。
我也尝试过这个post的编码,但它们也不起作用。
这是OneDrive中的错误还是我对$filter
使用了错误的编码类型?
答案 0 :(得分:1)
使用它:
urlFilter += ` and indexof(Name,'` + encodeURIComponent(this.Name) + `') gt -1`;
this.Name
来自我的输入。
从我的工作项目中复制。