我正在使用SWIFT制作网站iOS应用程序,并使用Wordpress、RESTAPI和JSON获取数据。现在我正努力实现搜索机会。似乎我可以在这个查询中使用Search:
https://example.com/wp-json/wp/v2/posts?search=searchquerry
但是我如何通过SWIFT传递西里尔符号来搜索查询呢?它似乎只适用于英文字母。我试着用
addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)
但没什么用。
另外,我还想知道如何在搜索查询中使用多个关键字。
也许有人能帮我解决这个问题?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在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传递包含西里尔符号及多个关键字的搜索查询了。