[linux] Re: utf-8 hint
Wybo Dekker
wybo op servalys.nl
Ma mei 1 15:37:49 CEST 2006
On Mon, 1 May 2006, Martijn van Oosterhout wrote:
> On Mon, May 01, 2006 at 01:14:58PM +0200, Wybo Dekker wrote:
>> Kan iemand me een hint geven waar te kijken als ik utf-8 wil
>> gebruiken?
>>
>> Heb hier bv een dir met spaanse mp3's.
>> Als ik die list met ls in een xterm zie ik accent chars op drie
>> manieren:
> Wat is jouw locale gewoonlijk? Als je "locale" typt, krijg je de lijst.
ik had 'C', maar zie hieronder
> Als je locale bij het starten van xterm niet goed is, dan zal xterm
> nooit utf-8 laten zien.
>
> "locale -a" geeft de lijst mogelijke locales. Als je een xterm begint
> met een utf-8 locale:
>
> LANG=en_US.utf8 xterm &
Eh... niet zomaar, vanuit een bestaande xterm werkte het niet.
Maar nadat ik in mijn starup file LANG=en_US.utf8 had gezet en
opnieuw inlogde ging het helemaal goed, bedankt voor die tip!
Alleen gebeuren er nu wel rare dingen:
1. Delete werkt nu als Backspace
2. ls gedraagt zich case-insensitive. In een dir waar (bv) files
x en X staan:
tmp>touch x X
tmp>ls [a-z]
x X
tmp>ls [A-Z]
x X
tmp>
Dit was precies de reden waarom ik 2 jaar geleden op LANG=C
overging op basis van een discussie op de unix-gg lijst
waarvan ik de mails gattached heb...
--
Wybo
> From j.kersing op the-box.com Sun Mar 21 15:26:28 2004
> From: Jac Kersing <j.kersing op the-box.com>
> Subject: Re: [Unix-gg] case-sensitivity in bash
> To: unix-gg leden discussie lijst <unix-gg op hobby.nl>
> Date: Sun, 21 Mar 2004 14:51:04 +0100 (CET)
>
>
> On Sun, 21 Mar 2004, Wybo Dekker wrote:
>
> > Mijn bash expandeert (op een van mijn twee machines) sind enige tijd
> >
> > ls [a-z]*
> >
> > net als
> >
> > ls [a-zA-Z]*
> >
> > zelfs als ik hem opstart met bash --norc --noprofile, en ik kan er maar
> > niet achterkomen waarom. De nocaseglob optie staat op off.
> > Heeft iemand een idee waar ik moet zoeken?
>
> Environment variabele LANG. Zet 'm op LANG=C voor het oude gedrag.
>
> Mvg,
>
> Jac
>
> --
> Jac Kersing Technical Consultant The-Box Development
> j.kersing op the-box.com http://www.the-box.com
> _______________________________________________
> Unix-gg mailing list
> Unix-gg op hobby.nl
> https://mail.hobby.nl/mailman/listinfo/unix-gg
>
>
> From toon op hout.vanvergehaald.nl Sun Mar 21 15:26:28 2004
> From: Toon van der Pas <toon op hout.vanvergehaald.nl>
> Subject: Re: [Unix-gg] case-sensitivity in bash
> To: unix-gg leden discussie lijst <unix-gg op hobby.nl>
> Date: Sun, 21 Mar 2004 14:50:52 +0100
>
>
> On Sun, Mar 21, 2004 at 02:51:04PM +0100, Jac Kersing wrote:
> > On Sun, 21 Mar 2004, Wybo Dekker wrote:
> >
> > > Mijn bash expandeert (op een van mijn twee machines) sind enige tijd
> > >
> > > ls [a-z]*
> > >
> > > net als
> > >
> > > ls [a-zA-Z]*
> > >
> > > zelfs als ik hem opstart met bash --norc --noprofile, en ik kan er maar
> > > niet achterkomen waarom. De nocaseglob optie staat op off.
> > > Heeft iemand een idee waar ik moet zoeken?
> >
> > Environment variabele LANG. Zet 'm op LANG=C voor het oude gedrag.
>
> Ik zie het zelfde. En je hebt gelijk met LANG-C.
> Interessant. Waarom gebeurt dit? Heb je er een verklaring voor?
> Waarom verandert NLS het standaard Unix-gedrag?
>
> Groeten,
> Toon.
> --
> "Debugging is twice as hard as writing the code in the first place.
> Therefore, if you write the code as cleverly as possible, you are,
> by definition, not smart enough to debug it." - Brian W. Kernighan
> _______________________________________________
> Unix-gg mailing list
> Unix-gg op hobby.nl
> https://mail.hobby.nl/mailman/listinfo/unix-gg
>
>
> From j.kersing op the-box.com Sun Mar 21 15:26:28 2004
> From: Jac Kersing <j.kersing op the-box.com>
> Subject: Re: [Unix-gg] case-sensitivity in bash
> To: unix-gg leden discussie lijst <unix-gg op hobby.nl>
> Date: Sun, 21 Mar 2004 15:29:23 +0100 (CET)
>
>
> On Sun, 21 Mar 2004, Toon van der Pas wrote:
>
> > Ik zie het zelfde. En je hebt gelijk met LANG-C.
> > Interessant. Waarom gebeurt dit? Heb je er een verklaring voor?
> > Waarom verandert NLS het standaard Unix-gedrag?
>
> Zie: http://www.linuxjournal.com/article.php?sid=3286
>
> Mvg,
>
> Jac
>
> --
> Jac Kersing Technical Consultant The-Box Development
> j.kersing op the-box.com http://www.the-box.com
> _______________________________________________
> Unix-gg mailing list
> Unix-gg op hobby.nl
> https://mail.hobby.nl/mailman/listinfo/unix-gg
>
>
> From toon op hout.vanvergehaald.nl Sun Mar 21 15:26:29 2004
> From: Toon van der Pas <toon op hout.vanvergehaald.nl>
> Subject: Re: [Unix-gg] case-sensitivity in bash
> To: unix-gg leden discussie lijst <unix-gg op hobby.nl>
> Date: Sun, 21 Mar 2004 15:54:04 +0100
>
>
> On Sun, Mar 21, 2004 at 03:29:23PM +0100, Jac Kersing wrote:
> > On Sun, 21 Mar 2004, Toon van der Pas wrote:
> >
> > > Ik zie het zelfde. En je hebt gelijk met LANG-C.
> > > Interessant. Waarom gebeurt dit? Heb je er een verklaring voor?
> > > Waarom verandert NLS het standaard Unix-gedrag?
> >
> > Zie: http://www.linuxjournal.com/article.php?sid=3286
>
> Dankjewel voor deze link. Maar volgens mij beantwoordt het de vraag
> in kwestie toch niet helemaal. In het artikel vind ik geen match op
> de strings "bash", "shell" en "expan". De auteur gaat het onderwerp
> uit de weg.
>
> De complexiteiten van de internationalisatie zijn mij (grotendeels
> :-) bekend. Maar het onderhavige probleem gaat over de expansie van
> de character class [a-z]. Deze character class kan toch niet anders
> worden geïnterpreteerd dan als de reeks letters, startend met kleine
> letter 'a' en kleine letter 'z'. Is het plotseling onmogelijk
> geworden om dit soort character classes correct te laten matchen?
>
> Ok ok, ik ben op de hoogte van de multi-byte character sets zoals
> UTF-8. Maar gelukkig is bij het ontwerp daarvan de range ASCII-codes
> letterlijk overgenomen. Niet voor niks toch? De bedoeling daarvan was
> toch om zo weinig mogelijk bestaande functionaliteit te breken?
> Naar mijn mening zou [a-z] alléén moeten matchen met een klein letter
> uit de reeks 'a' t/m 'z', óók wanneer we nl_NL op euro gebruiken.
> We werken tenslotte niet op een Windows-bak, toch?
>
> Groeten,
> Toon.
>
> BTW: Het zetten van LANG=C is geen oplossing. Deze variabele wordt
> immers ook gebruikt door alle applicaties die door de gebruiker
> worden opgestart. Ik wil openoffice.org graag draaien met nl_NL,
> anders werkt de invoer van characters met accenten niet.
> (Dit vind ik trouwens een vreemde zaak. Waarom werkt oo niet correct
> met us? Amerikanen moeten toch ook wel eens een buitenlands woord
> typen, net zoals wij ook wel eens frans of duits (überhaupt) typen.)
> --
> "Debugging is twice as hard as writing the code in the first place.
> Therefore, if you write the code as cleverly as possible, you are,
> by definition, not smart enough to debug it." - Brian W. Kernighan
> _______________________________________________
> Unix-gg mailing list
> Unix-gg op hobby.nl
> https://mail.hobby.nl/mailman/listinfo/unix-gg
>
>
> From j.kersing op the-box.com Sun Mar 21 16:27:04 2004
> From: Jac Kersing <j.kersing op the-box.com>
> Subject: Re: [Unix-gg] case-sensitivity in bash
> To: unix-gg leden discussie lijst <unix-gg op hobby.nl>
> Date: Sun, 21 Mar 2004 16:49:26 +0100 (CET)
>
>
> On Sun, 21 Mar 2004, Toon van der Pas wrote:
>
> > Maar het onderhavige probleem gaat over de expansie van de character
> > class [a-z]. Deze character class kan toch niet anders worden
> > geïnterpreteerd dan als de reeks letters, startend met kleine letter 'a'
> > en kleine letter 'z'. Is het plotseling onmogelijk geworden om dit soort
> > character classes correct te laten matchen?
>
> Zoals je in het artikel kunt lezen geldt voor sommige talen dat letter
> combinaties gelden als 1 letter. Dus is het niet simpel weg een rij van a,
> b, c ... z meer, maar een complexer geheel. Waarom daar opeen ook
> hoofdletters bij horen ontgaat mij op het moment ook.
>
> Als ik (ooit) meer tijd heb duik ik er dieper in. Natuurlijk houd ik me
> aanbevolen voor hints en tips van anderen die nu al het naadje van de
> kous weten (of tijd hebben om dat nu te zoeken)
>
> Mvg,
>
> Jac
> --
> Jac Kersing Technical Consultant The-Box Development
> j.kersing op the-box.com http://www.the-box.com
> _______________________________________________
> Unix-gg mailing list
> Unix-gg op hobby.nl
> https://mail.hobby.nl/mailman/listinfo/unix-gg
>
>
> From toon op hout.vanvergehaald.nl Sun Mar 21 16:27:18 2004
> From: Toon van der Pas <toon op hout.vanvergehaald.nl>
> Subject: Re: [Unix-gg] case-sensitivity in bash
> To: unix-gg leden discussie lijst <unix-gg op hobby.nl>
> Date: Sun, 21 Mar 2004 16:44:32 +0100
>
>
> On Sun, Mar 21, 2004 at 04:49:26PM +0100, Jac Kersing wrote:
> > On Sun, 21 Mar 2004, Toon van der Pas wrote:
> >
> > > Maar het onderhavige probleem gaat over de expansie van de character
> > > class [a-z]. Deze character class kan toch niet anders worden
> > > geïnterpreteerd dan als de reeks letters, startend met kleine letter 'a'
> > > en kleine letter 'z'. Is het plotseling onmogelijk geworden om dit soort
> > > character classes correct te laten matchen?
> >
> > Zoals je in het artikel kunt lezen geldt voor sommige talen dat letter
> > combinaties gelden als 1 letter. Dus is het niet simpel weg een rij van a,
> > b, c ... z meer, maar een complexer geheel. Waarom daar opeen ook
> > hoofdletters bij horen ontgaat mij op het moment ook.
>
> Ik begrijp het probleem wel. (het sorteervolgorde-probleem uit het
> artikel)
>
> En naast dit multi-character = één letter probleem speelt natuurlijk
> ook nog het volgende probleem: dient een ü ('u'-umlaut) te matchen
> met de characterset [a-z]? Het probleem hierbij is dat alle
> character-codings elke combinatie van een letter met een accent
> beschouwen als een aparte letter, terwijl het natuurlijk eigenlijk
> een letter met een attribuut is. Het is allemaal erg complex.
>
> > Als ik (ooit) meer tijd heb duik ik er dieper in. Natuurlijk houd
> > ik me aanbevolen voor hints en tips van anderen die nu al het
> > naadje van de kous weten (of tijd hebben om dat nu te zoeken)
>
> Zie mijn hint om openoffice.org correct te laten werken.
>
> Groeten,
> Toon.
> --
> "Debugging is twice as hard as writing the code in the first place.
> Therefore, if you write the code as cleverly as possible, you are,
> by definition, not smart enough to debug it." - Brian W. Kernighan
> _______________________________________________
> Unix-gg mailing list
> Unix-gg op hobby.nl
> https://mail.hobby.nl/mailman/listinfo/unix-gg
>
>
> From wybo op servalys.nl Sun Mar 21 17:27:18 2004
> From: Wybo Dekker <wybo op servalys.nl>
> Subject: Re: [Unix-gg] case-sensitivity in bash
> To: unix-gg leden discussie lijst <unix-gg op hobby.nl>
> Date: Sun, 21 Mar 2004 17:27:18 +0100 (CET)
>
> On Sun, 21 Mar 2004, Jac Kersing wrote:
>
> > Environment variabele LANG. Zet 'm op LANG=C voor het oude gedrag.
>
> Dat klopt, bedankt voor die tip, maar het kan haast niet het hele verhaal
> zijn. Want op mijn beide machines stond LANG op en_US en de een had het
> probleem, de ander niet.
>
> En zoals Toon al zei: het is wel heel vreemd dat dit gedrag
> taalafhankelijk is.
>
> Ik heb het even voor alle talen in /usr/lib/locale geprobeerd:
> for i in /usr/lib/locale/*; do echo -n $i:;LANG=${i##*/}; ls [a-z]*; done
> en dan blijkt het (buiten C en POSIX) voor maar 37 van de 270 goed te
> gaan.
>
> --
> Wybo
More information about the Linux
mailing list