开发者社区 问答 正文

WordPress REST API搜索和西里尔文符号

我正在使用SWIFT制作网站iOS应用程序,并使用Wordpress、RESTAPI和JSON获取数据。现在我正努力实现搜索机会。似乎我可以在这个查询中使用Search:

https://example.com/wp-json/wp/v2/posts?search=searchquerry

但是我如何通过SWIFT传递西里尔符号来搜索查询呢?它似乎只适用于英文字母。我试着用

addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)

但没什么用。

另外,我还想知道如何在搜索查询中使用多个关键字。

也许有人能帮我解决这个问题?

展开
收起
游客5akardh5cojhg 2019-12-09 13:21:27 450 分享 版权
阿里云 AI 助理回答

在Swift中,处理非ASCII字符(如西里尔字母)并将其编码为URL兼容格式时,确保正确地使用addingPercentEncoding(withAllowedCharacters:)方法是关键。对于西里尔字母等特殊字符,问题可能出在没有正确指定允许的字符集上。.urlQueryAllowed通常是一个好的起点,但请确认你的搜索查询字符串在编码之前已经被正确初始化且包含期望的西里尔字符。

这里有一个示例代码片段,展示了如何在Swift中准备含有西里尔字符的搜索查询字符串,并通过URL编码它以用于HTTP请求:

let searchQuery = "исследование" // 你的西里尔文搜索词
let encodedSearchQuery = searchQuery.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!

let urlString = "https://example.com/wp-json/wp/v2/posts?search=\(encodedSearchQuery)"
if let url = URL(string: urlString) {
    // 然后你可以用这个url创建URLRequest进行网络请求...
}

关于使用多个关键字进行搜索,你只需将这些关键字连接成一个字符串,中间用空格分隔即可。Wordpress REST API的搜索端点会自动处理这些空格,视之为逻辑AND操作。例如,如果你想要搜索包含“исследование”和“технологии”的帖子,你可以这样构造查询字符串:

let keywords = ["исследование", "технологии"]
let combinedKeywords = keywords.joined(separator: " ")
let encodedCombinedKeywords = combinedKeywords.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!
let multiKeywordUrlString = "https://example.com/wp-json/wp/v2/posts?search=\(encodedCombinedKeywords)"

这段代码首先将多个关键词组合成一个字符串,然后对整个字符串进行编码,最后构建完整的URL。这样,你就可以通过SWIFT传递包含西里尔符号及多个关键字的搜索查询了。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答