Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: rfc2396 url encoding



On Apr 24, 11:47pm, Clint Adams wrote:
}
} >     input=( ${(s::)1} )
} >     print ${(j::)input/(#b)([^A-Za-z0-9_.!~*\'\(\)-])/%$(([##16]#match))}
} 
} This changed behavior in that ó (UTF-8) becomes %F3 instead of %C3%B3 .
} Thoughts?

(Is that actually wrong?  When I cut and paste from your email message,
there's only one byte at ó.)

I see the point, though, I think.  (s::) is now splitting between wide
characters rather than between raw bytes.

What happens if you simply unsetopt multibyte within the function?

  urlencode() {
    setopt localoptions extendedglob nomultibyte
    input=( ${(s::)1} )
    print ${(j::)input/(#b)([^A-Za-z0-9_.!~*\'\(\)-])/%$(([##16]#match))}
  }

If that doesn't work, we'll have to come up with some way to force $1
to be re-interpreted as a raw byte string rather than a wide character
string before splitting it up.



Messages sorted by: Reverse Date, Date, Thread, Author