Just nu i M3-nätverket
Gå till innehåll

Svenska tecken i PHP och MySQL


lagers.info

Rekommendera Poster

Jag har problem med att skriva ut svenska tecken när jag hämtar data från en MySQL databas och presenterar dessa med hjälp av PHP.

 

Istället för åäö visas

Å = Ã…

Ä = Ä

Ö = Ö

 

Det fungerar bra att lagra de svenska tecknen i databasen och det går bra att visa dom när jag är inne i MyAdmin och listar innehållet i tabellen. Men när jag sen gör lite fin HTML kod för att visa innehållet i databasen så blir de svenska tecknen ersatt av de konstiga tecknen (se ovan)

 

Så här ser koden ut idag:

 

<?PHP
  $länk = mysql_connect("localhost","user","pass")
    or die ("Det fungerar inte");
  $databas = mysql_select_db("databasen");
  $sql = "SELECT fnamn, enamn, adress FROM `tabell` WHERE 1 LIMIT 0, 30";
  $resultat = mysql_query($sql);
  while($rad = mysql_fetch_array($resultat)) {
    echo "Förnamn: ".$rad[fnamn]. "Efternamn: ".$rad[enamn]. "Adress: ".$rad[adress]. "<br>";
  }
  mysql_close($länk);
PHP?>

De enda tips jag har hittat är för Java och det är följande, om det nu kan vara till någon hjälp för dig som ska hjälpa mig :)

 

String url="jdbc:mysql://localhost/dbname"; 

String url="jdbc:mysql://localhost/dbname?useUnicode=true&characterEncoding=iso-8859-1";

 

Hoppas att någon har en bra lösning. Jag såg att någon tidigare hade haft detta problem men att de då gjort en inställning i my.ini och då hade det blivit bra. Men det är inte ett alternativ för mig eftersom jag bara har min hemsida på ett webhotell och denna inställning skulle påverka alla andra.

Länk till kommentar
Dela på andra webbplatser

Hrrmm, något sådant problem har jag aldrig haft, så jag vet inte om jag kan hjälpa dig med det...

 

Men du skulle som en annan utväg kunna ändra de tecken som blir felaktiga till HTML kod. Läs på om str_replace (http://se.php.net/manual/en/function.str-replace.php) eller gör bara såhär:

 

$string = str_replace("å","&auml;",$string);

 

<editerat>

Du kan ju förresten oxå testa med funktionen setlocale (http://se.php.net/manual/en/function.setlocale.php)

 

Eftersom jag aldrig har stött på ditt problem så vet jag inte om det kommer hjälpa, men det är ju värt ett försök:

 

setlocale (LC_ALL, 'sv_SE');

</editerat>

 

--

Some say I am crazy..but the Voices in my head disagree...

 

[inlägget ändrat 2002-10-25 20:09:16 av Bj0rN]

Länk till kommentar
Dela på andra webbplatser

Ulf Härnhammar

Det skulle kunna vara så att tecknen har blivit fel i databasen av någon anledning. Testa att SSH:a in till servern och köra kommandoradsklienten mysql. Där ser du hur datat i databasen egentligen ser ut, utan några webbmellanled.

 

 

Länk till kommentar
Dela på andra webbplatser

Det ser ut som att tecknen visas i Unicode.

Vad har du for encoding på websidorna? UTF-8 (eller annan Unicode), eller ISO-8859-1, som det bör vara?

 

 

Länk till kommentar
Dela på andra webbplatser

Skiljer sig ganska mycket beroende OS verkar det som.

 

Men grundtipset från mig är, använd aldrig $länk, byt till $lank istället.

 

Datatypen i tabellen ?

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...