Ved at bruge denne side acceptere du brugen af cookies.

Læs mere

Del via:

Sådan bruges Æ, Ø og Å Korrekt på Hjemmesider

Hvordan du opsætter din hjemmeside med UTF-8 karaktersæt

Redigeret: 2017-09-24 22:39

For at bogstaverne Æ, Ø og Å kan vises rigtigt i HTML, skal man bruge UTF-8 når man koder sine sider. Gør man det rigtigt, så vil man altså kunne bruge ÆØÅ uden at skulle erstatte dem med specielle HTML koder. Ofte vil en server dog være indstillet til, at levere ressourcer som ISO-8859-1, hvilket selvfølgelig ikke vil fungere, når filerne er kodet med UTF-8 karaktersæt.

Det er selvfølgelig bedst, at man konfigurere sin server til at bruge UTF-8 karaktersæt fra starten. Når eksempelvis en browser anmoder om en side (sender en såkaldt GET anmodning), så vil det karaktersæt, som en given ressource er kodet i, bliver oplyst i HTTP header delen af svaret fra serveren. Alternativt kan man også skrive det i et meta tag i head delen på en HTML fil.

Det anbefales dog at man konfigurere sin server korrekt, frem for at bruge meta tags, eller erstatte bogstaver og tegn med HTML entities. Er man alligevel tvunget til at erstatte Æ, Ø og Å, så kan man benytte HTML koderne fra tabellen nedenfor:

ææ
øø
åå
ÆÆ
ØØ
ÅÅ

Konfiguration af web server til UTF-8

Langt det nemmeste er, hvis man har adgang til at ændre konfigurationen på ens server. Hvis man bruger Apache's HTTP Server kan man ændre det i enten http.conf eller apache2.conf. Hvad for en af de to filer du skal ændre, afhænger blandt andet af hvordan du har installeret apache, eller hvilken Linux distribution du benytter. I Windows hedder filen normalt http.conf.

I Linux kan filen normalt findes på en af de to placeringer:

  1. /etc/apache2/apache2.conf
  2. /etc/httpd/conf/httpd.conf

For at ændre charset skal man tilføje følgende et sted i filen:

AddDefaultCharset utf-8
AddCharset utf-8 .html .css .js

Skift karaktersæt i HTTP headers med PHP

Karaktersæt skal angives i HTTP Content-type header delen på en server. Det er muligt at se HTTP headerne ved at bruge developer tools i Chrome eller Firefox.

Nedenfor ses et eksempel på hvordan en browser kan svare på en GET anmodning:

Content-Type: text/html; charset=utf-8

I PHP kan man ændre på serverens standard charset i Content-Type, ved at bruge header funktionen som vist nedenfor:

header('Content-type: text/html; charset=utf-8');

Bemærk. HTTP headers skal sendes, før man sender HTML til browseren.

Opsætning af Databaser

Hvis du arbejder med databaser, så bliver det lidt mere kompliceret. Selve databasen skal nemlig også have den rigtige kollektion, eksempelvis utf8_general_ci til UTF-8 indhold. Selve forbindelsen til databasen skal også sættes til at bruge UTF-8.

I PHP kan det gøres ved, at inkludere følgende efter database forbindelsen:

$Connection = mysql_connect($MYSQL_Host, $MYSQL_user, $MYSQL_pass);
$Selected = mysql_select_db($MYSQL_db, $Connection);
mysql_set_charset('utf8');

Forbindelsens karaktersæt kan dog også indstilles i selve konfigurationsfilerne til MySQL, hvilket nok vil være en del nemmere, end at skulle angive det i alle scripts. Derimod kan det være en god idé, at angive det i selve scriptsne, hvis du ikke kender opsætningen på den MySQL server, de kommer til at arbejde sammen med.

Kollektionen for dine tabeller, og selve databasen, kan du enten indstille manuelt når du opretter databaserne og tabellerne, eller via et grafisk editor som phpmyadmin.

Det er også muligt at ændre en eksisterende tabel til UTF-8. Du skal bare være opmærksom på, at der kan opstå problemer hvis selve indholdet er kodet i et andet karaktersæt. Det er for det meste ikke alvorlige problemer. I mange tilfælde vil det bare betyde, at visse karaktertegn (Eksempelvis ÆØÅ), ikke vises korrekt på hjemmesiden.