gpt4 book ai didi

ruby-on-rails - URI 编码不起作用

转载 作者:数据小太阳 更新时间:2023-10-29 07:43:18 25 4
gpt4 key购买 nike

在 Rails 应用程序上,我需要解析 uris

a = 'some file name.txt'
URI(URI.encode(a)) # works

b = 'some filename with :colon in it.txt'
URI(URI.encode(b)) # fails URI::InvalidURIError: bad URI(is not URI?):

如何安全地将文件名传递给包含特殊字符的 URI?为什么编码对冒号不起作用?

最佳答案

URI.escape (或 encode)采用可选的第二个参数。它是一个正则表达式,匹配所有应该转义的符号。要转义您可以使用的所有非单词字符:

URI.encode('some filename with :colon in it.txt', /\W/)
#=> "some%20filename%20with%20%3Acolon%20in%20it%2Etxt"

encode有两个预定义的正则表达式:

URI::PATTERN::UNRESERVED  #=> "\\-_.!~*'()a-zA-Z\\d"
URI::PATTERN::RESERVED #=> ";/?:@&=+$,\\[\\]"

关于ruby-on-rails - URI 编码不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18365128/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com