diff --git a/src/api.rs b/src/api.rs index 3b4aa3a..ca76558 100644 --- a/src/api.rs +++ b/src/api.rs @@ -439,6 +439,10 @@ fn search(request: &mut Request, db: &DB) -> IronResult { .url .path() .join(&::std::path::MAIN_SEPARATOR.to_string()); + let query = match percent_decode(query.as_bytes()).decode_utf8() { + Ok(s) => s, + Err(_) => return Err(Error::from(ErrorKind::EncodingError).into()), + }; let search_result = index::search(db, &query)?; let result_json = serde_json::to_string(&search_result); let result_json = match result_json {