tvinga fram åäö?

Tråden skapades och har fått 5 svar. Det senaste inlägget skrevs .
1

Sitter just nu och bygger om en sida som har en MySQL kopplad till sej. Mitt problem just nu är att även om jag har satt utf-8 på sidan så får jag inte ut åäö.

Min fråga är nu hur jag enklast kan tvinga fram sidan att visa dessa tecken på rätt sätt. I databasen ser allt ok ut, men inte på sidan.

Går det att lösa med PHP på ett smidigt sätt?

  • Medlem
  • Malmö
  • 2007-11-24 10:01

Om det är så att det är annan encoding i databasen, testa att köra "utf8_encode()" runt databas-output...

åäö KAN vara en rejäl pina, både vad gäller databas <> websidor <> webbläsares inställningar

tackar, nu ser det lite bättre ut

Alternativet är att du tvingar mysqlklienten till att använda utf-8 i din databasklass.

@mysql_query('SET character_set_results=utf8;');
@mysql_query('SET character_set_client=utf8;');
@mysql_query('SET character_set_connection=utf8;');

Jag har länge gjort så här med stor framgång:

Database connection sätter jag (i t ex phpmyadmin) till utf8_unicode_ci
nya databaser till utf8_bin (liksom tabeller som automatiskt blir utf8_bin)

När jag ansluter kör jag:
$connect = mysql_connect("localhost", "username", "userpass") or die (mysql_error());
mysql_select_db("databasname");
mysql_query("SET NAMES utf8");

Den sista raden gör underverk. Med denna setup kan jag dessutom köra tabeller i andra textformat, t ex om jag importerar någon gammal ISO-latin-tabell så funkar översättningen till utf-8 perfekt.

  • Medlem
  • Skövde
  • 2007-12-25 19:19

Tänkte bara slänga in lite erfarenhet i denna tråd.

Många gånger tror man att man sätter rätt encoding och sådant i både DB och php, men i slutändan måste man även säga till webbläsaren vilken encoding det är genom att ange i <head>:

<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
1
Bevaka tråden