WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Förvirring kring UTF8... (https://www.wn.se/forum/showthread.php?t=34450)

grinditwp 2009-01-14 14:03

Okej, så jag har typ portat om alla mina sidor till UTF-8.
Det fungerar bra, alla sidor fungerar.

Men en sak jag tänkt på och undrar över...

I databasen så sparas ÅÄÖ som konstiga tecken, t.ex.

Entreprenörskapsdag blir Entreprenörskapsdag

Skall det vara på detta sättet?
Sidan fungerar dock, jag kan spara text i databasen och hämta ut den och allt ser bra ut.

På mina sidor har jag;

Kod:

//Överst på alla PHP-sidor
header('Content-type: text/html; charset=utf-8');

//Meta på alla sidor
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Alla sidor är även sparade som UTF-8 utan BOM.

Och i min MySQL är MySQL teckenuppsättning inställt på UTF-8 Unicode (utf8), samt utf8_unicode_ci på kollation för MySQL.

orreborre 2009-01-14 14:12

Det kan vara så att din uppkoppling mot databasen från din klient inte är utf8 och därför blir det konstiga tecken.
Kan vara värt att kolla upp

najk 2009-01-14 14:17

mysql_query("SET NAMES utf8");
mysql_query("SET CHARACTER SET utf8");

Syke 2009-01-14 14:18

Edit: Asch, lite sen.

grinditwp 2009-01-14 14:28

Citat:

Originally posted by najk@Jan 14 2009, 15:17
mysql_query("SET NAMES utf8");
mysql_query("SET CHARACTER SET utf8");

Varför skall jag göra detta?
MySQL är redan inställt på utf8.

Syke 2009-01-14 14:32

Citat:

Ursprungligen postat av grinditwp
Citat:

Ursprungligen postat av najk
mysql_query("SET NAMES utf8");
mysql_query("SET CHARACTER SET utf8");

Varför skall jag göra detta?
MySQL är redan inställt på utf8.

http://dev.mysql.com/doc/refman/5.0/...onnection.html

najk 2009-01-14 14:37

Citat:

Ursprungligen postat av grinditwp
Citat:

Ursprungligen postat av najk
mysql_query(SET NAMES utf8);
mysql_query(SET CHARACTER SET utf8);

Varför skall jag göra detta?
MySQL är redan inställt på utf8.

Efter du gjort din connect.

grinditwp 2009-01-14 14:47

Ok, det gjorde susen...
Någon som orkar förklara kortfattat varför det är såhär?

Verkar som man måste ställa in massor för att få UTF8 att fungera korrekt, ändå så säger alla att UTF8 är bäst.

Tack!

Jonas 2009-01-15 06:35

Allting sparas korrekt egentligen. Bara att dina tabeller & fält inte är "utf8" i mysql, + att anslutningen inte är det.

Enda som har skett är att mysql har sparat texten som den egentligen ser ut.

Inget fel egentligen, bara en (enligt mig) kosmetisk bugg, eftersom resultatet inte påverkas för besökaren.

martine 2009-01-15 09:39

Citat:

Originally posted by grinditwp@Jan 14 2009, 15:47
Verkar som man måste ställa in massor för att få UTF8 att fungera korrekt, ändå så säger alla att UTF8 är bäst.
Det är inte krångligare för att det är utf8, det bara förefaller så eftersom alternativet annars brukar vara att strunta i att fundera på teckenuppsättning och anta att det råkar fungera.

Även om du använder latin1 så bör du göra samma inställningar överallt för att säkerställa att det fungerar som planerat (detta kommer bli allt viktigare i och med att utf-8 allt oftare blir standardinställning).

Att du behöver ställa in teckenuppsättning även för överföringen är kanske omständigt men MySQL är ett kraftfullt verktyg för hantering av teckenuppsättningar och du kan utan vidare kombinera olika teckenuppsättningar i tabeller, databaser och vid överföringen. Alltså måste det också anges.


Alla tider är GMT +2. Klockan är nu 23:52.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson