Gå til innhold

Problemer med tegnsett (æøå)


Anbefalte innlegg

Videoannonse
Annonse

Du må passe på at du jobber med samme tegnsett hele veien. Altså dobbeltsjekk at du har samme tegnsett i databasen og tabellene hvor dataene ligger og at de behandles med samme tegnsett gjennom webservere og PHP.

 

Den raskeste måten å fikse det på er som oftest å endre til ønsket tegnsett i HTTP headeren (den er lett og glemme). Ser at den står til iso-8859-1 på begge requestene.

 

Date: Thu, 27 Mar 2008 07:14:36 GMT
Server: Apache/2.0.52 (CentOS)
X-Powered-By: PHP/4.3.9
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html; charset=ISO-8859-1

200 OK

 

Du kan endre tegnsett i HTTP headeren runtime med PHP:

<?php
ini_set('default_charset', 'utf-8');
?>

 

Les mer om denne problemstillingen i denne tråden:

http://php.no/node/230

 

Filene vises nok riktig i Dreamweaver fordi den autodetecter tegnsett og jobber vel default i UTF-8.

Endret av Knut Urdalen
Lenke til kommentar

Ser du har meta-tagger som prøver å styre siden til de ulike tegnsettene. Likevel vises begge som ISO-8859-1 (dette sjekker du enkelt i Opera og Firefox, i sistnevnte på Verktøy > Sideinformasjon).

 

Har du sjekket tegnsettene til de to index.php-filene? Hva er disse? Og hva er tegnsettene til de inkluderte filene?

 

Åpne filene i et program og konverter dem til ett av tegnsettene, feks UTF-8.

Lenke til kommentar
Hva om du starter dokumentet slik?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

 

Dette hjelper ikke hvis serveren sender ISO-8859-1 i header.

Lenke til kommentar
Kan det fikses med en .htaccess-fil?

 

Har du forsøkt å kjøre phpinfo()?

http://no.php.net/manual/en/function.phpinfo.php

 

Den gir deg en liste over instillinger for apache og php.

 

Hvis du velger å benytte utf-8 du benytte multibyte string funksjonene.

 

http://no.php.net/manual/en/ref.mbstring.php

 

Det er vist i ett tidligere innlegg i tråden hvordan du kan sette tegnsett for header og i tilleg du må må sette tegnsett i markup header, som steffenz har gitt deg ett eksempel på. Filen må være lagret i det samme tegnsettet, og det er en stor fordel at apache kjører samme tegnsett, men det er ikke noe krav.

 

Det er en rekke ting du må ta i betraktning før du velger tegnsett. Det viktigste er om du har tilgang til mbstring funksjonene under php, hvis du ikke har dette, støtter ikke serveren utf-8 rent teknisk.

 

Du burde ha tilgang til relevant runtime konfigurasjon, slik at du rent teknisk kan konfigurere de relevante instillingene for php.

 

Hvis det tekniske er på plass og du har valget mellom iso-8859-1, iso-8859-15, Windows-1252, eller utf-8, må du vurdere hva som egner seg best i forhold til hvordan du skal benytte siden.

 

Hvis du forventer inndata fra kinesere, grekere, eller arabere på deres eget morsmål trenger du utf-8.

 

Hvis du primært skal ha en side med norskt innhold, og ønsker å benytte normale funksjoner i php, så må du benytte ett bytebasert tegnsett. iso-8859-15 er iso-8859-1 men med euro tegnet og er ett godt valg.

 

Hvis du ikke benytter php, og serveren støtter utf-8, er dette å anbefale. Du kan forsøke å konfigure tegnsett i .htaccess da det skal være teknisk mulig å gjøre dette der i følge manualen, men jeg er ingen reser i server konfigurering.

 

Håper dette hjalp deg noe på veien.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...