Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails RubyonRails中的HTTP.get编码_Ruby On Rails_Ruby_Encoding_Character Encoding - Fatal编程技术网

Ruby on rails RubyonRails中的HTTP.get编码

Ruby on rails RubyonRails中的HTTP.get编码,ruby-on-rails,ruby,encoding,character-encoding,Ruby On Rails,Ruby,Encoding,Character Encoding,我正在做一个简单的获取URL的过程,我得到了一些我无法破解的编码 res_str=Net::HTTP.getURI。parsehttp://suggestqueries.google.com/complete/search?client=youtube&ds=yt&q=s%C3%A1lin 我的回答是这样的 # escape the query q=URI::escape(params["q"]) # prepare request uri = URI.pars

我正在做一个简单的获取URL的过程,我得到了一些我无法破解的编码

res_str=Net::HTTP.getURI。parsehttp://suggestqueries.google.com/complete/search?client=youtube&ds=yt&q=s%C3%A1lin

我的回答是这样的

    # escape the query
    q=URI::escape(params["q"])
    # prepare request 
    uri = URI.parse("http://clients1.google.com/complete/search?client=youtube&q="<<q)
    http = Net::HTTP.new(uri.host, uri.port)
    request = Net::HTTP::Get.new(uri.request_uri)
    request["User-Agent"] = "Mozilla/5.0"
    # make request
    response = http.request(request)
    # read body
    body = response.body
window.google.ac.h[s�林,�林汉斯j�ns m�ns,0],[s�林汉斯 J�ns m�恩斯乌迪尔酒店��号码�hrifum,0],[s�林汉斯j�ns m�ns�� 富尔科姆纳尔 米格,0,,[s]�林,0],[s�林汉斯j�ns m�ns s�D�ma,0],[s�林汉斯 J�ns m�ns hj� ��r、 0],[s�林汉斯j�ns m�纳什瓦尔河 德拉穆林,0,[s]�林汉斯j�ns m�ns原件,0],[s]�林汉斯j�ns M�ns ef�G�tti,0],[s�林汉斯j�ns m�纳什奥卡 N�tt,0]],{q:A9gr8ZE66_XaaFyUIlaNLEwyxQU,k:1}]

然而,如果我在postman中测试我的url,我会得到我想要的结果

window.google.ac.h[sálin,[[sálin hans jóns míns,0],[sálin hans 约翰·蒙斯·乌迪尔·努姆·赫里夫姆,0],[sálin hans jóns mínsþfullkomnar 米格,0],[sálin,0],[sálin hans jóns míns sódóma,0],[sálin hans jóns míns hjáþr,0],[sálin hans jóns míns hvar 德拉穆林,0],[sálin hans jóns míns原件,0],[sálin hans jóns míns efégætti,0],[sálin hans jóns míns okkar 诺特,0]],{q:ecnVzf6wE6HskDep7UOiRxxu5_4,k:1}]

当我执行get in irb时:

res_str=Net::HTTP.getURI。parsehttp://suggestqueries.google.com/complete/search?Client=youtube&ds=yt&q=s%C3%A1lin

我得到以下信息:

window.google.ac.h[\s\xE1lin\,[\s\xE1lin hans j\xF3ns m\xEDns\,0],\s\xE1lin hans j\xF3ns m\xEDns undir\xFE\xEDnum \xE1hrifum\,0],\s\xE1lin hans j\xF3ns m\xEDns\xFE\xFA fullkomnar 米格\,0],\s\xE1lin \,0],\s\xE1lin hans j\xF3ns m\xEDns s\xF3d\xF3ma\,0],\s\xE1lin hans j\xF3ns m\xEDns hj\xE1 \xFE\xE9r\,0],\s\xE1lin hans j\xF3ns m\xEDns hvar er draumurinn\,0],\s\xE1lin hans j\xF3ns m\xEDns 原始\,0],\s\xE1lin hans j\xF3ns m\xEDns ef\xE9g \xE6tti\,0],\s\xE1lin hans j\xF3ns m\xEDns okkar n\xF3tt\,0]],{\q\:\zlvsfcfdtebr\u JBE4te2\u XjMOeRs\,\k\:1}]

在执行请求或处理响应以获得真实响应时,我可以做什么

window.google.ac.h[\sálin\,[\sálin hans jóns míns\,0],\sálin hans jóns míns等


解决了这个问题:我只需要设置用户代理就可以接收这样的UTF-8编码结果

    # escape the query
    q=URI::escape(params["q"])
    # prepare request 
    uri = URI.parse("http://clients1.google.com/complete/search?client=youtube&q="<<q)
    http = Net::HTTP.new(uri.host, uri.port)
    request = Net::HTTP::Get.new(uri.request_uri)
    request["User-Agent"] = "Mozilla/5.0"
    # make request
    response = http.request(request)
    # read body
    body = response.body
现在,我将结果正确地发送到浏览器:希望这对某人有所帮助