群里有个人要encode url,但是不想把“#”给encode,所以晚上搜了一下,发现encode函数可以跟一个正则作为参数,表示那些不希望被encode的东西,而且有个常量URI::PATTERN::UNRESERVED
=> "-_.!~*'()a-zA-Z\\d"
表示那些不被encode的符号,
加上#就可以了
URI.encode("#b=阿!",Regexp.new("[^#{URI::PATTERN::UNRESERVED+'#'}]"))
=> "#b%3D%E9%98%BF!"