Hämta svenska tecken ur MySQL-databas

Tråden skapades och har fått 7 svar. Det senaste inlägget skrevs .
1
  • Oregistrerad
  • 2004-06-07 19:20

Hej!

Har lagt in en del grejer i en MySQL-databas som jag sedan skulle vilja presentera i en webbläsare. Men när jag hämtar ut informationen har får jag ut: Efter ett par m†naders h†rt arbete...

Är detta pga att mitt MySQL inte är konfigurerat för svenska tecken? Och i så fall: Hur gör jag det?

  • Medlem
  • Svedala
  • 2004-06-07 21:23

Funkar det i terminalen tex?
Jag tror mer det ligger i att många webläsare inte gillar att hantera svenska tecken rakt av, utan man konverterar dem till små kodsnuttar eller vad man ska säga. Å blir Å , Ä blir Ä osv.
Om du använder PHP för att hämta information ur databasen kan du använda dig av htmlentities() för att göra detta automatiskt om jag inte minns fel.

Vad använder du, PHP?

I Lasso så brukar detta inte vara några problem, encoding som det heter sköts automatiskt.

  • Oregistrerad
  • 2004-06-08 15:10

Jag kör PHP och htmlentities() hjälpte inte.. Verkar som om det kommer redan från databasen.

Jag kör MySQL 4 och läste någonstans att det inte finns stöd för unicode förens i senare versioner. Kan det vara en orsak?

  • Medlem
  • Stockholm
  • 2004-06-08 15:22
Ursprungligen av adlers:

Jag kör PHP och htmlentities() hjälpte inte.. Verkar som om det kommer redan från databasen.

Jag kör MySQL 4 och läste någonstans att det inte finns stöd för unicode förens i senare versioner. Kan det vara en orsak?

Hur har du lagt in datat i databasen? Via ett webbgränssnitt? Om så är fallet kanske du har haft fel encoding på (X)HTML-sidan? Hur plockar du ut datat? Har du samma encoding där?

  • Oregistrerad
  • 2004-06-08 16:51

Jag har matat in datan via terminalen och plockar sedan ut den via PHP. Hur väljer jag vilken encodning jag vill använda?

  • Medlem
  • Stockholm
  • 2004-06-08 17:27
Ursprungligen av adlers:

Jag har matat in datan via terminalen och plockar sedan ut den via PHP. Hur väljer jag vilken encodning jag vill använda?

Vad har du för charset inställt i den terminal-session som du matat in datat från? Har för mig att default är något annat än ISO-8859-1 (som jag misstänker att din MySQL-databas är inställd på). Just nu har jag ingen tillgång till en Mac så jag kan inte kolla exakt var i Terminal-menyn du ändrar det.

Med PHP kan du styra den Content-Type som webbservern skickar ut genom att ha följande rad först av allt:

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

Observera att den raden måste vara det första som skickas ut från php-scriptet, ett enda blanktecken eller annan output kommer att resultera i en felsida. ISO-8859-1 byts ut mot lämpligt charset, men jag skulle inte rekommendera något annat än just ISO-8859-1 eller UTF-8. ISO-8859-1 brukar vara default om man inte anger något, åtminstone är det så i Apache 1.3.x.

Ett alternativ är att lägga in det som en meta-tag i ditt (x)html-dokuments head-sektion, typ:

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />

Hur som helst så bör det värde du har på charset i något av dessa exempel matcha det som data har matats in med.

Mvh,
Peter

  • Oregistrerad
  • 2004-06-09 07:44

Värdena är faktiskt inmatade från Win XP..

Ska testa att ändra charset när jag kommer hem senare idag!

1
Bevaka tråden