# Url encode

**URL:** <https://www.ruby-forum.com/t/url-encode/84292>\
**Category:** Rails\
**Created:** [March 20, 2006, 8:08pm UTC](https://www.ruby-forum.com/t/url-encode/84292 "2006-03-20T20:08:05Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![alex](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/db5fbb/32.png) [@alex](https://www.ruby-forum.com/u/alex)\
**Post date:** [March 20, 2006, 8:08pm UTC](https://www.ruby-forum.com/t/url-encode/84292/1 "2006-03-20T20:08:05Z")

</div>

Can someone tell me how to encode a string to a url in Rails.  
I’ve got basic code as below, but it only adds dashes in place of spaces  
and doesn’t escape html.  
@page.url = @page.name.to\_s.gsub(/[]/, ‘-’)

---

<div class="post-metadata">

**Author:** ![alex](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/db5fbb/32.png) [@alex](https://www.ruby-forum.com/u/alex)\
**Post date:** [March 20, 2006, 8:23pm UTC](https://www.ruby-forum.com/t/url-encode/84292/2 "2006-03-20T20:23:45Z")

</div>

@page.url = CGI::escape(@page.name)

Will do URL encoding for you. To decode, use CGI::unescape().

More info is available by checking out the CGI class on the ruby-docs  
site:

[http://www.ruby-doc.org/core/](http://www.ruby-doc.org/core/)
