|
setup diary | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
/[^-_.!~*'()a-zA-Z\d;\/?:@&=+$,\[\]]/nとなる。これだと"["や"]"はencodeされないことになるが、encodeするべきのようだ。uri/common.rbを覗いてみると、次のように定義されている。
ALPHA = "a-zA-Z"
ALNUM = "#{ALPHA}\\d"
UNRESERVED = "-_.!~*'()#{ALNUM}"
RESERVED = ";/?:@&=+$,\\[\\]"
UNSAFE = Regexp.new("[^#{PATTERN::UNRESERVED}#{PATTERN::RESERVED}]", false, 'N').freeze
RESERVEDとUNRESERVEDの意味は分からないけど、
UNSAFE = Regexp.new("[^#{PATTERN::UNRESERVED}]", false, 'N').freeze
が正しい気がする。urlencodeもいろいろな種類があるのかも知れないけど。