UTF-8

Här ställer ni allmäna frågor kring Slackware Linux

Moderatorer: Nille, nomicon, Minime

hakan
Hedersmedlem
Inlägg: 811
Blev medlem: 15 okt 2003 06:31
ORT: Lidingö

UTF-8

Inlägg av hakan »

Är det någon som provat UTF-8, d.v.s. ändrat /etc/profile.d/lang.sh...
# en_US is the Slackware default locale:
export LANG=en_US
...till...
export LANG=en_US.UTF-8
...och i så fall, hur fungerar det?

/Håkan
lema2.0
Allsmäktig
Inlägg: 354
Blev medlem: 15 jun 2004 01:56

Re: UTF-8

Inlägg av lema2.0 »

Har kört med det sen lång tid tillbaka fast då med sv_SE.UTF-8. Det fungera utan problem för mig.
Det jag fick göra var att konvertera filnamn med åäö i sig, men jag ser det inte som något större problem.
Sen version 2.6.24 så är konsollen utf-8 som standard i Linux (man behöver inte köra unicode_start), men jag har för mig att Slackware inte har det som standard p.g.a. att vissa program inte stöder det fullt ut. tr är ett av dom om jag inte kommer ihåg fel.

Det som kan orsaka vissa problem är vissa perl-skript och awk-skript. Jag har råkat ut för det när jag kompilerat program som använder autoconf, automake och auto...osv. Lösningen var att temporärt sätta LANG=C och LC_ALL=C. Detta ska inte påverka programmet som kompileras.

Som sagt, jag har inga problem med det, fast jag har kört med det så länge att jag kanske inte ser eller kommer ihåg dom, men låt inte det hindra dig :).
hakan
Hedersmedlem
Inlägg: 811
Blev medlem: 15 okt 2003 06:31
ORT: Lidingö

Re: UTF-8

Inlägg av hakan »

Då ska jag prova också...export LANG=sv_SE.UTF-8...jag kommenterar bort...#export LC_COLLATE=C...också, har du det kvar?

För övrigt "knyckte" jag ditt skript från en annan tråd...
http://forum.slackware.se/viewtopic.php?f=1&t=2527
...ändrade bara så den gör "utf8" och provade...

Kod: Markera allt

#!/bin/sh
 for X in *; do
NAME=$(echo $X | iconv -f iso8859-1 -t utf8);
mv $X $NAME;
done
...det fungerar utmärkt! :)

/Håkan
lema2.0
Allsmäktig
Inlägg: 354
Blev medlem: 15 jun 2004 01:56

Re: UTF-8

Inlägg av lema2.0 »

Har bara LANG och LC_ALL satta.
LC_ALL gör så att alla LC_ variabler sätts till det värdet. Så sätter du LC_ALL sätts LC_COLLATE automatiskt.

Tittar man förövrigt i info-sidan för glibc så ser det ut att räcka med att sätta LANG.
Sätter man LANG så tolkas det som att alla variabler är det LANG är. Sen kan man sätta LC_TIME eller LC_COLLATE till något annat. Sätter man sen LC_ALL så sätts allting till det.

Provade precis att leka lite med det.
Gå in i en katalog med lagom många filer med olika namn. Kör "ls -al" och titta på hur filerna sorteras. Är LC_ALL och LANG satta (till något annan än C eller POSIX) så skriv "LC_ALL= LC_COLLATE=C ls -al" så kommer filerna att ha sorterats på ett annat sätt.

En sak till som jag kom på. Använder du screen så kanske du måste lägga till -U varje gång du startar screen (screen -U, gör ett alias i så fall) för att få det att använda utf-8.

Kul att något man gör fungerar i alla fall :).
jenso
Gud
Inlägg: 1823
Blev medlem: 08 okt 2003 10:35

Re: UTF-8

Inlägg av jenso »

Det var en itressant läsning. Kommer kanske att testa.

/Jens
hakan
Hedersmedlem
Inlägg: 811
Blev medlem: 15 okt 2003 06:31
ORT: Lidingö

Re: UTF-8

Inlägg av hakan »

Testat lite till och ex.v. "digikam" vill inte låta mig "batcha" någonting (resize, rename m.m), men fungerar med en_US.UTF8 så jag tror jag använder det istället.

Hittade lite mer om att konvertera..
$ iconv --from-code=ISO-8859-1 --to-code=UTF-8 ./"gammalfil" > ./"nyfil"

Programmet "pkgtool" måste jag dock starta som...
# LC_ALL=C pkgtool
..annars blir det "soppa" av det hela. ;)

/Håkan