On 1/26/07, David Korn <dgk at research.att.com> wrote:
>
> > How can I convert a character like ? (small u, grave accent) to the
> > integer character value of the current locale, i.e. per
> > http://saftsack.fs.uni-bayreuth.de/html/HTML_2.0/iso8859-1.html ? is
> > 249
> >
> > Cheers,
> > William
> > --
> >     @,,@   William James
> >    (\--/)  williamjamesgnusolaris at gmail.com
> >   (.>__<.) GNU/Solaris hacker
>
> ksh93 supports character constants in integer expressions, thus
>         $(('`'))
> will expand to the character value for grave and $(('u')) will
> give the character value for small u.  However, character values
> can be signed so that
>         $(('?'))
> expands to a signed number.  However, you can do
>         printf "%u\n" $(('?' &0xff ))
> to get the unsigned value.

That works in the en_US.iso885915 locale but in en_US.utf8 it fails:
$ printf "%u\n" $(('1'))
49
$ printf "%u\n" $(('?'))
ksh: '?': arithmetic syntax error

Cheers,
William
-- 
    @,,@   William James
   (\--/)  williamjamesgnusolaris at gmail.com
  (.>__<.) GNU/Solaris hacker

Reply via email to