我有这样的URI:
我试试这个:
require 'open-uri'
open "https://chart.googleapis.com/chart?cht=lc&chd=s:cEAELFJHHHKUju9uuXUc&chco=76A4FB&chls=2.0&chs=220x125&chxt=x,y&chxr=1,0,4&chxl=3:|Jan|Feb|Mar&chxs=2,0000dd,13,-1,t,FF0000&chxp=2,10,35,95&chxtc=1,5,15"
我收到以下消息:
URI :: InvalidURIError:错误的URI(不是URI?):
我该怎么办?
答案 0 :(得分:3)
管道导致您的问题。他们必须是percent encoded。
你可以通过
解决这个问题uri = "https://chart.googleapis.com/chart?cht=lc&chd=s:cEAELFJHHHKUju9uuXUc&chco=76A4FB&chls=2.0&chs=220x125&chxt=x,y&chxr=1,0,4&chxl=3:|Jan|Feb|Mar&chxs=2,0000dd,13,-1,t,FF0000&chxp=2,10,35,95&chxtc=1,5,15"
uri.gsub!('|', '%7C')
open uri
答案 1 :(得分:1)
您是否尝试使用CGI::escape(str)
对字符串进行网址编码?