UFO ET IT

URL 인코딩 된 URL에 추가 할 구문 분석 문자열

ufoet 2020. 11. 19. 22:23
반응형

URL 인코딩 된 URL에 추가 할 구문 분석 문자열


주어진 문자열 :

"Hello there world"

다음과 같이 URL 인코딩 문자열을 어떻게 만들 수 있습니까?

"Hello%20there%20world"

또한 문자열에 다음과 같은 다른 기호가있는 경우 어떻게해야하는지 알고 싶습니다.

"hello there: world, how are you"

그렇게하는 가장 쉬운 방법은 무엇입니까? 나는 파싱하고 그것을위한 코드를 만들려고했다.


require 'uri'

URI.encode("Hello there world")
#=> "Hello%20there%20world"
URI.encode("hello there: world, how are you")
#=> "hello%20there:%20world,%20how%20are%20you"

URI.decode("Hello%20there%20world")
#=> "Hello there world"

Ruby의 URI 는이를 위해 유용합니다. 프로그래밍 방식으로 전체 URL을 빌드하고 해당 클래스를 사용하여 쿼리 매개 변수를 추가하면 인코딩이 자동으로 처리됩니다.

require 'uri'

uri = URI.parse('http://foo.com')
uri.query = URI.encode_www_form(
  's' => "Hello there world"
)
uri.to_s # => "http://foo.com?s=Hello+there+world"

예제는 유용합니다.

URI.encode_www_form([["q", "ruby"], ["lang", "en"]])
#=> "q=ruby&lang=en"
URI.encode_www_form("q" => "ruby", "lang" => "en")
#=> "q=ruby&lang=en"
URI.encode_www_form("q" => ["ruby", "perl"], "lang" => "en")
#=> "q=ruby&q=perl&lang=en"
URI.encode_www_form([["q", "ruby"], ["q", "perl"], ["lang", "en"]])
#=> "q=ruby&q=perl&lang=en"

다음 링크도 유용 할 수 있습니다.


현재 답변은 URI.encodeRuby 1.9.2 이후로 더 이상 사용되지 않고 더 이상 사용되지 않는 것을 활용 하도록 말합니다 . CGI.escape또는 을 사용하는 것이 좋습니다 ERB::Util.url_encode.


관심이있는 사람이 있다면 가장 새로운 방법은 ERB에서하는 것입니다.

    <%= u "Hello World !" %>

다음과 같이 렌더링됩니다.

안녕하세요 % 20World % 20 % 21

uurl_encode의 약자입니다.

여기 에서 문서를 찾을 수 있습니다.

참고 URL : https://stackoverflow.com/questions/17375947/parsing-string-to-add-to-url-encoded-url

반응형