Avatar billede nemlig Professor
10. november 2014 - 21:30 Der er 8 kommentarer og
1 løsning

Ændret tegnsæt på server - problemer

Hejsa.

Jeg har et bookingsystem til at køre på en server, hvor server-tegnsættet er ISO-8859-1.
Min HTML-kode anvender ISO-8859-1 og php/html-filerne er skrevet med formattet  "ANSI"
MySQL anvender tegnsættet "latin1_swedish_ci".

Nu har server-administrator ændret server-tegnsættet til "UTF8", hvilket gør at fx æøå vises forkert.

Skal alt ændres eller kan det mon klares ved et anvende et andet tegnsæt i html-head sektionen?
Avatar billede erikjacobsen Ekspert
10. november 2014 - 21:48 #1
Du kan (skal) i toppen af alle dine PHP-filer indsætte det tegnsæt du anvender:

<?php
  header('Content-Type: text/html; charset=iso-8859-1');
?>

Læs evt. http://www.electrictoolbox.com/php-set-content-encoding-type-header/

Det kan give god mening at skifte til utf-8 - det er li'som fremtidssikret, og globaliseringssikret, men i vores lille smørhul af verden kan det give god mening at blive ved iso-8859-1
Avatar billede nemlig Professor
10. november 2014 - 21:59 #2
Jeg gør følgende i mine html(php)-filer:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="da" lang="da">
<head><title><?php echo $row['navn']; ?></title>
<meta http-equiv="content-Type" content="text/html; charset=iso-8859-1" />

Mener efter at serveradministrator har ændret standardtegnsættet på serveren til UTF8, har jeg problemer med æøå.
Avatar billede erikjacobsen Ekspert
10. november 2014 - 22:32 #3
Ja. Det er derfor du skal læse hvad jeg skriver.

Du skal ændre HTTP-headeren ved at skrive dette

<?php
  header('Content-Type: text/html; charset=iso-8859-1');
?>

i toppen af alle dine PHP-filer.
Avatar billede keysersoze Guru
10. november 2014 - 22:52 #4
Uden at være ekspert inden for PHP så kan det vel klares ét globalt sted, nemlig htaccess, fx via AddDefaultCharset og/eller AddCharset?
Avatar billede nemlig Professor
10. november 2014 - 22:52 #5
Jo tak, men jeg ville også gerne forstå det ;)

Skal jeg fortsat have min html-kode, som vist i #2 OG med din header-løsning øverst?
Avatar billede nemlig Professor
10. november 2014 - 23:21 #6
Det ser ud til at virke med Eriks forslag.

Tak til Erik.

#4 .htaccess har jeg ikke noget erfaring med. Men er det noget med, at hvis den smides i roden, så virker det også i alle undermapper?
Avatar billede erikjacobsen Ekspert
11. november 2014 - 15:21 #7
Du skal ikke have
  <meta http-equiv="content-Type" content="text/html; charset=iso-8859-1" />
hvis du sætter tegnsæt i headeren via PHP
Avatar billede nemlig Professor
12. november 2014 - 15:58 #8
Tak Erik.
Jeg har i øvrigt fået en status fra serveradministrator.
Problemstillingen ligger åbenbart i MySQL konfigurationen og der arbejdes på en løsning.

Tak for dit input om headeren mm.
Avatar billede nemlig Professor
16. januar 2016 - 12:08 #9
Lukker - skal lige tilføje, at løsningen var dit svar i #1.
Tak endnu engang.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester