2012-02-29, 19:52
  #1
Medlem
Hej. Jag har ett litet problem. Åäö visas som "�" när data hämtas från mySql. Detta gäller endast data hämtad från mySql, så problemet måste vara på serversidan.

Collation är inställd på "latin1_swedish_ci", låter som åäö inte ska vara något problem där. Har försökt ändra till "utf8_swedish_ci", men den ändras tillbaka när jag klickar på go.

Någon som vet hur jag ska lösa detta problemet?
Tacksam för svar!
Citera
2012-02-29, 20:02
  #2
Medlem
gadzooxs avatar
Collation har inget med saken att göra, utan styr enbart sorteringsordning och hur fritt/strikt tecken matchas i WHERE-villkor. En jänkare tycker väl t.ex. att både Å och Ä är samma tecken som A, och vill kunna söka efter "raksmorgas" och få träffar på rader som innehåller "räksmörgås". Han vill även att "Änka" och "Anka" skall komma efter varandra i det sorterade sökresultatet. Då ska han inte välja utf8_swedish_ci.

Nog om collations. Ditt problem är vilken teckenuppsättning du använder i databasanslutningen. Kör queryn SET NAMES utf8; som första query efter att du connectat, så löser det sig.

Eller borde lösa sig, i ditt fall tror jag nog att du även lyckats använda iso-8859-1 någonstans, ser så ut då � bara är 1 byte, inte 2. Se till att allt i hela kedjan (alltså allt från meta charset i html-koden till databasanslutningen, till teckenuppsättningen som dina php-filer sparats med i texteditorn, till det data som sparas i db) kör utf8 så slipper du problem.
Citera
2012-02-29, 20:08
  #3
Medlem
mysql_query('SET NAMES utf8;'); löste problemet. Tack så mycket!
Citera
2012-03-04, 17:55
  #4
Medlem
mysql_* är föråldrat och man rådgivs idag att byta till PDO, och för att upprätta en databasanslutning med PDO så kan man göra så här för att få med SET NAMES direkt

Kod:
$db = new PDO("mysql:host=localhost;dbname=mydatabase", "username", "password", array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8", ));

Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in