2017-07-07 14 views
0

OneDrive Search APIから検索コンテンツをフィルタリングしようとしています。これは、元のクエリキーワードがUTF-8でエンコードされた値が%25E4%25B8%25AD%25E8%258B%25B1%25E5%25AD%2597%25E5%2585%25B8OneDrive OData 4 UTF8文字を使用した検索結果のフィルタリング

の中英字典であるフィルタなしのリクエストです。フィルタなしのリクエストはこのようになります。

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は

ユースケースは、私はfilter=contains(name,'$keyword')のようにフィルタを追加する必要があるnameで一致keywordを見つけることです。

フィルタと対応する要求は

https://api.onedrive.com/v1.0/drive/root:%2F:/view.search?q=%25E4%25B8%25AD%25E8%258B%25B1%25E5%25AD%2597%25E5%2585%25B8&filter=contains%28name%2C%27%255Cu4E2D%255Cu82F1%255Cu5B57%255Cu5178%27%29&access_token=です$ access_tokenは

最初の要求は私にASCIIと非ASCII文字の両方のために正しい結果が得られますが、もう一つは、私を与えます正しい結果はASCII文字のみで、URLエンコードされたUTF-8文字では機能しません(空の結果のみを返します)。

私はこのpostからもエンコードを試しましたが、動作しません。

これはOneDriveのバグですか、または$filterに間違ったタイプのエンコードを使用していますか?

答えて

0

は、それを使用します。

urlFilter += ` and indexof(Name,'` + encodeURIComponent(this.Name) + `') gt -1`; 

this.Nameは私の入力から来ています。

私の作業プロジェクトからコピーされました。

関連する問題