1

URL 문자열을 Google Chart의 레이블로 변환하려고합니다.Google 차트의 URL을 어떻게 포맷합니까?

내 질문은 : 내 입력은 www.mysite.com/link과 비슷하며 코드 자체를 Google 차트 URL에 삽입 할 수 있도록 인코딩해야합니다.

전 : www.mysite.com/link/test

후 : www.mysite.com%2Flink%2Ftest

나는 레일에서 UTF-8 URL 인코딩 된 문자열에 일반 문자열을 변환 할 수있는 방법

?

+0

루비 1.8 또는 1.9 사용하고 있습니까? Ruby 1.9에는 필요하다면 ASCII와 UTF-8 사이의 변환을 도와 줄 수있는'Encoding' 클래스가 있지만 이것은 7 비트가 아닌 ASCII 문자에만 적용 할 수 있습니다. – tadman

+0

@tadman - Rails 3 및 Ruby 1.9.2 – sscirrus

+0

@tadman - 유효한 URL이 7 비트 ASCII 문자에 해당합니까? – sscirrus

답변

1

표준 라이브러리에서 또한 CGI.escape있다 :

>> CGI.escape('www.mysite.com/link/test') 
=> "www.mysite.com%2Flink%2Ftest" 
0
#saved in ./lib/string.rb 
class String 
    def encode_this 
     self.gsub(' ', '%20').gsub('/', '%2F') #etc... 
    end 
end 

귀하의 필요에 맞게 보편적이며 맞춤 설정할 수 있습니다.

"www.mysite.com/link/test".encode_this 
=> "www.mysite.com%2Flink%2Ftest" 
+1

실제 URL 인코딩이 필요한 경우 다른 포괄적 인 솔루션이있을 때 직접 수동으로 롤링하는 데주의해야합니다. http://stackoverflow.com/questions/2353742/url-encode-equivalent-in-ruby-on-rails 또는'CGI :: Escape'를 참조하십시오. –

1

레일 3.0 Rack에 기반 랙은 Rack::Utils.escape 방법을 제공한다.

s = "www.mysite.com/link/test" 
# => "www.mysite.com/link/test 
Rack::Utils.escape(s) 
# => "www.mysite.com%2Flink%2Ftest" 
관련 문제