Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: rfc2396 url encoding
- X-seq: zsh-workers 23320
- From: Bart Schaefer <schaefer@xxxxxxxxxxxxxxxx>
- To: zsh-workers@xxxxxxxxxx
- Subject: Re: rfc2396 url encoding
- Date: Tue, 24 Apr 2007 23:22:20 -0700
- In-reply-to: <20070425034745.GA11136@xxxxxxxxxxx>
- Mailing-list: contact zsh-workers-help@xxxxxxxxxx; run by ezmlm
- References: <20051106185713.GA11612@xxxxxxxxxxx>	<1051106194911.ZM32000@xxxxxxxxxxxxxxxxxxxxxxx>	<20070425034745.GA11136@xxxxxxxxxxx>
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