欢迎来到cool的博客
7

Music box

Click to Start

点击头像播放音乐
新博客链接

解决url中不能不能编译中文或隐藏敏感信息的问题。ruby使用URI.escape方法 js中使用encode()

有的浏览器不能自动识别url中参数的中文,会出现报错。所以要把参数的中文元素,或者敏感信息进行编译。

require 'uri'   #一般rails项目会自带。   JavaScript自带  escape方法,可以直接 escape(string)使用。

enc_uri = URI.escape("http://example.com/?a=\11\15")
p enc_uri
# => "http://example.com/?a=%09%0D"

irb(main):004:0> enc_uri = URI.escape("http://example.com/?a=我爱你")
=> "http://example.com/?a=%E6%88%91%E7%88%B1%E4%BD%A0"

反编译:

irb(main):009:0> enc_uri = URI.unescape("http://example.com/?a=%E6%88%91%E7%88%B1%E4%BD%A0")
=> "http://example.com/?a=我爱你"

 

js中使用encodeURI()  和 decodeURI()方法: (该方法和 ruby 的方法互相 编译。)

mark = "123范德萨"

encodeURI(mark)
"123%E8%8C%83%E5%BE%B7%E8%90%A8"
decodeURI("123%E8%8C%83%E5%BE%B7%E8%90%A8")
"123范德萨"

 

encodeURIComponent(uri) 和 encodeURI(uri) 的区别

var uri = "https://w3schools.com/my test.asp?name=文章"
undefined
uri
"https://w3schools.com/my test.asp?name=文章"
res = encodeURIComponent(uri)
"https%3A%2F%2Fw3schools.com%2Fmy%20test.asp%3Fname%3D%E6%96%87%E7%AB%A0"
a = encodeURI(uri)
"https://w3schools.com/my%20test.asp?name=%E6%96%87%E7%AB%A0"

返回列表