If python can have pyuca that works across platform, why such thing can not
have at C level?

On Wed, Sep 25, 2019 at 12:24 PM Eric Blake <ebl...@redhat.com> wrote:

> On 9/25/19 10:56 AM, Peng Yu wrote:
> > I want to make my `sort` to be machine-independent and always use the
> > correct Unicode sort order. Is there a way to do so?
>
> Those two goals are somewhat at odds.  The only truly portable
> machine-independent sorting is the one guaranteed by POSIX when you use
> LC_ALL=C (fun fact: even on an EBCDIC machine, that is required by POSIX
> to collate in ASCII order, rather than native byte order).  The moment
> you use any other locale, then you not only left to the mercies of
> whoever wrote that locale, but also stuck with the fact that there is no
> portable way to transfer locale definitions from one vendor's libc to
> another.
>
> >
> > I don't know how to check where en_US.UTF-8 comes from. Do you know
> > how to check it? (I use Mac OS X.)
>
> All other locales are somewhat vendor-dependent; as you've discovered,
> your vendor (Apple) has a rather gaping hole in their locale support.
> But because Apple is a closed-source shop, it will have to be Apple that
> fixes their bug, unless you want to take on the gargantuan task of
> writing a gnulib module that provides locale tables to mirror glibc for
> use on non-glibc machines.
>
> Note that glibc doesn't have that problem, at least on my system:
>
> $ cat /etc/fedora-release
> Fedora release 30 (Thirty)
> $ rpm -q glibc
> glibc-2.29-22.fc30.x86_64
> $ printf '%s\n' cafe caff café | LC_ALL=en_US.UTF-8  sort --debug
> sort: text ordering performed using ‘en_US.UTF-8’ sorting rules
> cafe
> ____
> café
> ____
> caff
> ____
>
> So one option you could pursue is switching to an operating system that
> does not curtail your freedoms.
>
> --
> Eric Blake, Principal Software Engineer
> Red Hat, Inc.           +1-919-301-3226
> Virtualization:  qemu.org | libvirt.org
>
-- 
Regards,
Peng

Reply via email to