webForumDet fria alternativet

ISO vs UTF

9 svar · 871 visningar · startad av Virus

VirusMedlem sedan aug. 20064 inlägg
#1

Hej, jag har läst lite på det här forumet av och till men aldrig ställt någon egen fråga.
Nu har det dock dykt upp en sak som jag behöver hjälp med.

Undertecknad har en mindre site med några hundratal sidor i ren html styrd med css. Sidorna ligger på en server som jag inte har något som helst inflytande över. Texten är både på svenska och engelska.

Nu har jag uppgraderat mitt operativsystem hemma, och inte oväntat använder den nya versionen UTF-8 istället för ISO-8859-1.
Frågan är då om jag bör konvertera alla filerna till UTF eller om jag skall ändra inställningar på hemdatorn och fortsätta med ISO. (charset=iso-8859-1 är givetvis angivet i huvudet för alla html-filerna, men det är ju en baggis att ändra på)

Vilka är fördelarna med UTF gentemot ISO och finns det några nackdelar?

nitro2k01Medlem sedan aug. 20037 630 inlägg
#2

Virus skrev:

Nu har jag uppgraderat mitt operativsystem hemma, och inte oväntat använder den nya versionen UTF-8 istället för ISO-8859-1.

Vänta nu, vad är det som använder UTF-8? Ditt operativsystem? Din editor? Din webbläsare?
Alla moderna webbläsare har stöd för både och, så du ska inte behöva konverera filerna bara för sakens skull.

Virus skrev:

Frågan är då om jag bör konvertera alla filerna till UTF eller om jag skall ändra inställningar på hemdatorn och fortsätta med ISO. (charset=iso-8859-1 är givetvis angivet i huvudet för alla html-filerna, men det är ju en baggis att ändra på)

Då måste du även ändra filformatet, annars blir meta-taggen felvisande.
/r jag menade teckenkodningen, alltså det sätt som tecken lagras i filen.

Virus skrev:

Vilka är fördelarna med UTF gentemot ISO och finns det några nackdelar?

UTF-8 är en unicode-baserad standard som kan lagra utökade tecken (Som åäö, japanska tecken osv) på ett kompakt sätt. För ISO-standarderna krävs det antingen en ISO-kodning per teckenuppsättning (Som kan innehålla högst 128 utökade tecken) eller en ett skrymmande sk HTML-entity för varje tecken som skrevs ut på sidan och inte fanns med i den angivna ISO-standarden. UTF-8-standarden kan också lätt utäkas med nya tecken utan att bryta bakåtkompatibiliteten.
Därför är också UTF-8 nästan uteslutande det språk som används i xml-filer, dit t ex xhtml hör.

Idag har alla moderna webbläsare bra stöd för båda standarderna, men på sikt kommer nog UTF-8 ta över, även om detta ligger långt in i framtiden. Däremot ska du av någon anledning lagra ren xml (Alltså inte specifikt xhtml) så kan annat än UTF-8 leda till problem, eftersom vissa program helt sonika förväntar sig UTF-8 i xml-filer. HTML4-format.

VirusMedlem sedan aug. 20064 inlägg
#3

Jo, jag vet att dagens webbläsare kan tyda UTF-8.
Frågan gäller i första hand om det finns några bra skäl till att konvertera mina gamla filer till UTF-8 eller om jag lika gärna kan fortsätta med ISO-8859-1.
Bakgrunden är alltså att jag har bytt till en nyare variant av Suse och den använder UTF-8.

Jag är inget dator-proffs och har aldrig behövt bry mig om sådana här saker tidigare, men som jag ser det så har jag tre alternativ:

  • Behålla filerna på servern i ISO och ställa om konsole eller texteditorn på hemdatorn till ISO när jag editerar gamla eller skriver nya sidor.
  • Konvertera alla html-filer på servern med iconv (eller liknande) genom något enkelt script, och givetvis även ändra charset i html-huvudet.
  • Som jag förstår det så kan jag även välja att ställa om Suse till ISO genom att ändra i /etc/sysconfig/language och sedan fortsätta som vanligt.

Om jag förstår dig rätt så tillhör framtiden UTF-8 men i dagsläget så finns inga allvarliga skäl att byta från ISO till UTF?
Finns det förresten något enkelt sätt att se om en fil är kodad i ISO eller UTF?

zcorpanMedlem sedan dec. 20042 269 inlägg
#4

Välkommen till wF! :h

Ju tidigare du konverterar till utf-8, desto lättare blir det... Nån gång kommer du behöva göra det ändå. (Det är vad jag tror iaf.)

Värt att komma ihåg också är att webbläsare tolkar iso-8859-1 som om det vore windows-1252 (för text/html). Därför kommer formulärdata som skickas till servern via webbläsare vara windows-1252.

Virus skrev:

Finns det förresten något enkelt sätt att se om en fil är kodad i ISO eller UTF?

Om inte din texteditor visar det kan du öppna filen i en webbläsare och kolla Page Info eller liknande.

VirusMedlem sedan aug. 20064 inlägg
#5

zcorpan skrev:

Välkommen till wF!

Tack!

zcorpan skrev:

Ju tidigare du konverterar till utf-8, desto lättare blir det... Nån gång kommer du behöva göra det ändå. (Det är vad jag tror iaf.)

Förutsatt att du har rätt i ditt antagande så är det tveklöst ett ganska tungt argument.
Jag tror jag kör på den linjen.

spangoMedlem sedan juni 20006 147 inlägg
#6

Jag tvivlar ytterst starkt på att man någonsin man kommer "behöva" byta från ISO-8859-1 till UTF-8. UTF-8 är inte bättre, renare eller mer ariskt eller än ISO-8859-1. De är helt enkelt olika kodningar för olika syften. UTF-8 är till för texter med övervägande de "vanliga" västerländska tecknen, men med möjlighet att stoppa in alla unicodetecken. ISO-8859-1 är till för texter med enbart väst-/nordeuropeiska tecken. Har du inte behov av mer finns det ingen anledning att byta. Ska du skriva övervägande kinesiska ska du inte använda någondera utan någon kodning anpassad för kinesiska tecken, detsamma gäller för alla andra teckensystem.

Att SuSE avänder UTF-8 beror enbart på inställningarna. Är det OS:et i allmänhet som krånglar vill jag minnas att det är miljövariabeln LC_ALL som ska ställas till sv_SE för att få till en svensk miljö med vanliga ISO-kodningen (vill du ha t.ex. en amerikansk miljö med den kodningen kan du välja en_US.ISO-8859-1). Är det nån applikation som krånglar (databas, webbserver, terminalhanterare, ...) ska du ändra på det i applikationens konfiguration.

Virus skrev:

Finns det förresten något enkelt sätt att se om en fil är kodad i ISO eller UTF?

Under *NIX kan du använda kommandot file /sökväg/till/fil.ext.

zcorpanMedlem sedan dec. 20042 269 inlägg
#7

spango skrev:

Jag tvivlar ytterst starkt på att man någonsin man kommer "behöva" byta från ISO-8859-1 till UTF-8.

Det behövs tex om man vill använda XML på webben. (Eller utf-16, om man vill det.) Att använda någon annan enkodning än utf-8 eller utf-16 för XML på webben är inte säkert eftersom XML-processorer bara behöver ha stöd för dessa. Om du använder någon annan enkodning och kommunikationen misslyckas är det ditt fel.

spango skrev:

UTF-8 är inte bättre, renare eller mer ariskt eller än ISO-8859-1.

Det kan representera hela Unicode, det anser jag vara en stor fördel. Att webbläsare inte respekterar iso-8859-1 och istället använder windows-1252 anser jag vara en nackdel då det kan invalidera din data om du tar emot formulärdata från webbläsare (vilket skapar välformighetsfel i XML om du stoppar in den datan direkt i XML och anger iso-8859-1). :)

spango skrev:

De är helt enkelt olika kodningar för olika syften.

Ja... iso-* används för att man är lat och inte orkar konvertera till nyare enkodningar. ;) Eller att man använder verktyg som inte har stöd för utf-*. (IMHO.)

spango skrev:

UTF-8 är till för texter med övervägande de "vanliga" västerländska tecknen, men med möjlighet att stoppa in alla unicodetecken.

utf-8 är till för vilken text som helst.

spango skrev:

ISO-8859-1 är till för texter med enbart väst-/nordeuropeiska tecken.

Det finns ingen anledning till att utf-8 inte skulle användas för dessa texter.

spango skrev:

Har du inte behov av mer finns det ingen anledning att byta.

Nej. Men han kanske får mer behov i framtiden, och då hade det varit fördelaktigt om han redan hade bytt.

spango skrev:

Ska du skriva övervägande kinesiska ska du inte använda någondera utan någon kodning anpassad för kinesiska tecken, detsamma gäller för alla andra teckensystem.

Varför skulle inte utf-8 användas för kinesiska?

spangoMedlem sedan juni 20006 147 inlägg
#8

zcorpan skrev:

Det kan representera hela Unicode, det anser jag vara en stor fördel.

Det är bra, om man nu verkligen har en stor mängd koreanska texter. Har man en massa svenska/engelska texter är vinsten måttlig.

zcorpan skrev:

Varför skulle inte utf-8 användas för kinesiska?

UTF-8 har variabel teckenbredd, vilket gör att ju längre bak i Unicodetabellen man hamnar, ju fler bytes krävs för att representera tecknet. A-Z går på en byte, ÅÄÖ två, andra på tre-fyra byte. Anledningen till att det är så här är att det ska vara en mer utrymmeseffektiv teckenuppsättning än UTF-16 (där alla tecken är två byte), vilket den bara blir om man övervägande använder tecken från den del av uppsättningen som bara tar upp en byte. Kinesiska, japanska och koreanska tecken tar upp tre byte var. Har man alltså ett dokument som är helt och hållet på kinesiska, är det vettigare att använda Big5 eller GB som är anpassade för att inte vara kass för de tecknen.

Tro nu inte att jag är nån rabiat motståndare till Unicode, det är verkligen kuckumaffens, men ser man ingen uppenbar anledning till att byta, gör nåt vettigare med din tid istället.

DanneStMedlem sedan feb. 20041 327 inlägg
#9

Tro nu inte att jag tänker lägga mig i denna diskussion! Jag blir bara svettig och förundrad över den läskigt (nästan lite sjuka...) kunskap Ni två besitter! ;-)

Jag ville bara kommentera:

Virus skrev:

Undertecknad har en mindre site med några hundratal sidor...

VADÅ MINDRE SITE!?
Några hundra sidor...

VirusMedlem sedan aug. 20064 inlägg
#10

Tack för alla råd och synpunkter.
Tipset om kommandot file var värdefullt.

Efter någta tester och lite funderande valde jag den breda vägen - jag ställde om suse till ISO-8859.

Jag provade iconv men fick det inte till att fungera på äldre filer (från utf till iso gick det bra men inte tvärt om) så jag fortsätter med iso ett tag till. Siten är helt statisk så jag behöver inte bry mig om vad som kan hända vid in- och utmatning.

DanneSt skrev:

VADÅ MINDRE SITE!?
Några hundra sidor...

Tja, den har varit uppe i tio år snart och med tiden blir det rätt många sidor även om man bara spottar ur sig några varje månad.

Genererad på 391 ms · cache AV · v20260730165559-full.f96bc7eb