首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >对URL进行编码的最佳方式?

对URL进行编码的最佳方式?
EN

Stack Overflow用户
提问于 2009-12-03 01:02:27
回答 3查看 556关注 0票数 1

我目前正在开发一个CMS,并想在URL中以一种很好的方式编码特殊字符。我不想使用Rack::Utils.escape。

有没有很酷的宝石可供选择?

诚挚的问候

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-12-03 04:01:16

看看stringex gem here,它甚至可以在没有rails的情况下使用,但是包含了一些东西来使它更容易使用(有rails)。

票数 3
EN

Stack Overflow用户

发布于 2009-12-03 01:06:58

Ruby的CGI库应该可以满足您的需求:

代码语言:javascript
复制
url_encoded_string = CGI::escape("'Stop!' said Fred")
# => "%27Stop%21%27+said+Fred"

请参阅http://ruby-doc.org/core/classes/CGI.html

票数 1
EN

Stack Overflow用户

发布于 2009-12-04 06:59:17

嗯,我通常使用一种方便的定制方法,称为String.to_slug。我希望你会发现它是有用的。

调用/lib/to_slug.rb并将其包含在一个初始化器中,或者仅将其包含在生成urls的模型中。

代码语言:javascript
复制
String.class_eval do

  #converts accented letters into ascii equivalents (eg. ñ becomes n)
  def normalize
    #this version is in the forums but didn't work for me
    #chars.normalize(:kd).gsub!(/[^\x00-\x7F]/n,'').to_s
    mb_chars.normalize(:d).gsub(/[^\x00-\x7F]/n,'').to_s
  end

  #returns an array of strings containing the words on a string
  def words
    gsub(/\W/, ' ').split
  end

  #convert into a nice url-ish string
  def to_slug(separator='-')
    strip.downcase.normalize.words.join(separator)
  end

end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1834332

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档