Som enkelte kanskje har lagt merke til, har en del tilbaketråkk i denne bloggen sett litt merkelig ut – omtrent som dette:
Grunnen til dette, er at jeg mottar en rekke trackbacks kodet i UTF-8 mens bloggen min er kodet i iso-8859-1. Når UTF-8 vises som iso-8859-1 blir det seende ut slik som over, med feil på de norske tegnene.
Vanligvis er ikke sånt noe problem, fordi en maskin som sender en trackback til min server skal fortelle hvilket tegnsett den sender fra seg, slik at jeg kan vise det på riktig måte. Dette er det imidlertid mange CMSer som ikke tar så høytydelig, og da blir det et problem, slik som jeg viser over.
Tidligere har jeg gått ut fra at trackbackposten har vært kodet i iso-8859-1 dersom ikke noen tegnkoding har vært oppgitt. Nå prøver jeg heller å tro at postene er i UTF-8 dersom jeg ikke får beskjed om noe annet. Så får vi se om det hjelper!
Er det ikke litt «skummelt» å «gå ut fra» noe som helst når det gjelder tegnsett? Å konvertere alt som ikke er UTF-8 til UTF-8 er vel det «rette» i så måte?
Nå vil du jo falle i en ny felle dersom det ikke er UTF-8 mener jeg.
Vel, Kyrre – det er skummelt, men når det som er postet ikke inneholder noen informasjon om tegnsett, er det ikke mye jeg kan gjøre?
Uansett, jeg tror de fleste poster med UTF-8 nå, så det burde gå greit. Vi får se 🙂
Nei. Det er ikke så mye å gjøre med saken når du ikke vet hvilket tegnsett som er brukt. Jeg gjetter selv «nå og da» og jeg gjetter på at alt som ikke er UTF-8 er ISO-8859-1 og konverterer deretter.
Men det er jo lett å «glemme» at det også finnes andre tegnsett der ute, og skal man ta høyde for- og gjette seg gjennom alt til det er rett, så blir det mye kodeskriving og (vil jeg tro) flere feil å forholde seg til.
Sam Ruby er vel den bloggeren i verden som har skrevet mest om (og som kanskje kan mest om) tegnsett og konvertering mellom dem. Jeg foreslår et søk i hans blogg om problemet, men et greit utgangspunkt kan være å lese http://www.intertwingly.net/stories/2004/04/14/i18n.html
Asbjørn: Takk for link til god og nyttig lesing. Her er imidlertid ikke problemet egentlig knyttet til konvertering eller visning, men til forståelse. Noen blogge-CMS, blant annet (enkelte versjoner av?) WordPress, legger ikke ved noen «charset»-informasjon i Content-type-headeren. Da er jeg like langt.
Joel Spolsky¹ linkes til fra siden du nevner, og hans «Single Most Important Fact About Encodings», sier jo «It does not make sense to have a string without knowing what encoding it uses». Da må man gjette. Og slik systemet mitt nå er satt opp, gjetter jeg øyensynlig stort sett rett. 🙂
¹ http://www.joelonsoftware.com/articles/Unicode.html
Det finnes en hel del triks Sam Ruby skriver om som du kan gjøre på teksten for å gjette deg til hvilken enkoding det er i. I tillegg er det en absolut anbefaling å kjøre output in UTF-8 istedet for ISO-8859-1, da du både nå og enda sikrere i fremtiden vil slippe å tenke på tegn-koding i det hele tatt. I tillegg gjør UTF-8 det mulig å kombinere tegn fra ulike tegnsett i langt større grad enn ISO-8859-1.
Altså, jeg tenker egentlig ikke så mye på tegnkoding i dag heller, jeg. Min egen, altså. Jeg er bare påpasselig med å hele tiden opplyse hva det er jeg sender fra meg. Og det tror jeg vil fungere i lang tid fremover, ennå.
At UTF-8 er løsningen på en rekke store problemer, det er jeg helt enig med deg i. Men i overgangen til at UTF-8 praktisk talt blir enerådende, vil manglende informasjon om tegnsett bli det store og stygge problemet.
Helt enig. Manglende tegnsett-informasjon er det største problemet uansett hvilket tegnsett du benytter, om dette er UTF-8 eller ISO-8859-1. Det eneste trygge man kan sende fra seg uten å si ifra hva det er, er ASCII. Og det er minst tre tegn for utilstrekkelig for oss nordboere. 😉