【问题标题】:using Cyrillic characters in URL get request [duplicate]在 URL 获取请求中使用西里尔字符 [重复]
【发布时间】:2018-07-23 06:59:09
【问题描述】:

我需要像这样创建 GET 请求:

https://public-api.nazk.gov.ua/v1/declaration/?q=Чер

https://public-api.nazk.gov.ua/v1/declaration/?q=Володимирович

= 之后的最后一个字符是西里尔符号

    let hostURL = "https://public-api.nazk.gov.ua/v1/declaration/?q="
    let url = URL(string: (hostURL + searchBar.text!))!

我有一个运行时错误,因为无法强制解开西里尔符号。我怎样才能避免这个问题?

【问题讨论】:

  • 不要完全改变您的问题,而是针对您的新问题发布一个关于解码获得的数据的新问题。

标签: ios swift url


【解决方案1】:

试试这个。

let hostURL = "https://public-api.nazk.gov.ua/v1/declaration/?q="
hostURL = hostURL + searchBar.text!

let encodedUrl = hostURL.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)

let url = URL(string:encodedUrl)

【讨论】:

  • 只编码searchBar.text,而不是整个URL。
  • @maddy,是的,这是另一种可能的解决方案。
  • 我得到“使用未解析的标识符 'URLQueryAllowedCharacterSet'”
  • @loann Will,我已经更新了我的答案。你现在可以检查一下吗?
  • 仍然进入控制台:"public-api.nazk.gov.ua/v1/declaration/… 正在尝试解码数据...要么没有返回数据,要么没有正确解码数据。"它适用于搜索条件中的整数,但不适用于西里尔文字(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-10
  • 1970-01-01
  • 2011-12-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多