一. URI

require 'uri'

uri = URI("http://foo.com/posts?id=30&limit=5#time=1305298413")
#=> #<URI::HTTP:0x00000000b14880
URL:http://foo.com/posts?id=30&limit=5#time=1305298413>
uri.scheme
#=> "http"
uri.host
#=> "foo.com"
uri.path
#=> "/posts"
uri.query
#=> "id=30&limit=5"
uri.fragment
#=> "time=1305298413" uri.to_s
#=> "http://foo.com/posts?id=30&limit=5#time=1305298413"

二. 常用方法

  • encode_www_form(enum, enc=nil)

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"
  • decode_www_form(str, enc=Encoding::UTF_8, separator: '&', use__charset_: false, isindex: false)

ary = URI.decode_www_form("a=1&a=2&b=3")
p ary #=> [['a', '1'], ['a', '2'], ['b', '3']]
p ary.assoc('a').last #=> '1'
p ary.assoc('b').last #=> '3'
p ary.rassoc('a').last #=> '2'
p Hash[ary] # => {"a"=>"2", "b"=>"3"}

相当于对请求字符串进行编解码

  • URI.encode(str[, unsafe])
    URI.escape(str[, unsafe])

require 'uri'
p URI.encode('http://www.ruby-lang.org/ja/man-1.6/?cmd=view;name=Ruby参考手册')
#=> http://www.ruby-lang.org/ja/man-1.6/?cmd=view;name=Ruby%B2%CE%BF%BC%CA%D6%B2%E1

编码为URI字符串后返回结果

  • URI.unescape(str)
    URI.decode(str)

require 'uri'
p URI.unescape('http://www.ruby-lang.org/ja/man-1.6/?cmd=view;name=Ruby%B2%CE%BF%BC%CA%D6%B2%E1')
#=> http://www.ruby-lang.org/ja/man-1.6/?cmd=view;name=Ruby参考手册

解码URI字符串后返回结果

最新文章

  1. 一个脚本可以一直运行 ignore_user_abort
  2. Andriod ADB开启Activity、Service以及BroadCast(包括参数的传递)
  3. Linux(10.18-10.25)学习笔记
  4. 【mysql的紧急应用】
  5. IDEA SDK(Software Development Kit) 介绍
  6. svn: E200030: sqlite[S10]: disk I/O error
  7. JS操作CSS样式
  8. mvc3.0ModelFirst生成实体
  9. HIBERNATE 01
  10. android 13 5种click事件不同实现方式 比较
  11. iso-开发基础知识-5-适配器
  12. 14.2.5.5 Change Buffer
  13. Linux之read命令使用
  14. sql对于字符串的处理
  15. [P1329] 数列
  16. day29 上周复习
  17. P1288 取数游戏II
  18. Python 基础 Python是什么
  19. thikphp5.0 ip地址库 解决卡顿问题 curl_init
  20. Linux统计某文件夹下文件的个数

热门文章

  1. 使用Unicode写文本文件:一个简单类的示例
  2. python获取硬件信息模块
  3. IOS ASI和AFN的 区别
  4. Error: Error SSL Required Code: 403
  5. 20165322 2017-2018-2《Java程序设计》课程总结
  6. focal loss和retinanet
  7. linnx 修改ip地址
  8. 打开eclipse出现an error has occurred.see the loh file
  9. select 获取选中option的值方法,选中option方法
  10. 工具类(设置控件 frame) - iOS