This is useful to make URLs from titles, like Netscape.com does...
"A new report recommends only work 4 -6 hrs a day" => "A-new-report-recommends-only-work-4-6-hrs-a-day"
"Video: \"Popular Mechanics\" editor debunks 9/11 myths" => "Video-Popular-Mechanics-editor-debunks-911-myths"
etc..
The code is 95% based on http://textsnippets.com/posts/show/451
def self.nice_slug(str) accents = { ['á','à ','â','ä','ã'] => 'a', ['Ã','Ä','Â','À','Ã?'] => 'A', ['é','è','ê','ë'] => 'e', ['Ë','É','È','Ê'] => 'E', ['Ã','ì','î','ï'] => 'i', ['Ã?','ÃŽ','ÃŒ','Ã?'] => 'I', ['ó','ò','ô','ö','õ'] => 'o', ['Õ','Ö','Ô','Ã’','Ó'] => 'O', ['ú','ù','û','ü'] => 'u', ['Ú','Û','Ù','Ü'] => 'U', ['ç'] => 'c', ['Ç'] => 'C', ['ñ'] => 'n', ['Ñ'] => 'N' } accents.each do |ac,rep| ac.each do |s| str = str.gsub(s, rep) end end str = str.gsub(/[^a-zA-Z0-9 ]/,"") str = str.gsub(/[ ]+/," ") str = str.gsub(/ /,"-") #str = str.downcase end