Ruby: Как представлять много-байтовые символы в виде октетов с процентом, для потребления httparty

StackOverflow https://stackoverflow.com/questions/5322380

Вопрос

Я использую 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)
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top