Ruby: Как представлять много-байтовые символы в виде октетов с процентом, для потребления httparty
-
24-10-2019 - |
Вопрос
Я использую httparty, чтобы получить данные JSON от некоторого URL -адреса отдыха
require 'httparty'
@search_term = "movies"
@data = HTTParty.get("http://api.douban.com/events?q=#{@search_term}")
Проблема в том, что если я передам параметр GET, который содержит много байтовые символы, например, если я хотел использовать китайский термин поиска UTF-8, «电影»:
@search_term = "电影"
@data = HTTParty.get("http://api.douban.com/events?q={@search_term")
Я получаю ошибку
URI :: InvalidurierRor AT / BAD URI (не URI?): Ссылка здесь
Поиск на Stackoverflow, я нашел следующее отвечать которые предполагают форматирование моих октетов @search_term в процентах, но я не смог выяснить, как это сделать.
Я ищу решение, которое будет выглядеть:
@search_term = params[:search_term]
@search_term = solution_with_some_escaping_or_something(@search_term)
@data = HTTParty.get("http://api.douban.com/events?q={@search_term")
#profit
Решение
Я не пробовал это с не английскими персонажами ... но что -то подобное должно работать.
require 'cgi'
@search_term = CGI::escape(@search_term)
Не связан с StackOverflow