sql >> Databasteknik >  >> RDS >> Mysql

Det finns symboler som  och så vidare i databasen, vad ska man göra?

Det beror på vad problemet faktiskt är...

Om det är så att dessa karaktärer är förmodade för att vara där (som "Mañana" på spanska) måste du se till att allt är i UTF-8... det bästa sättet är att:

1:kontrollera att databastabellerna är i "utf-8"-kodning (om inte konvertera dem till utf-8)

2:som Martin noterade, se till att databasanslutaren är utf-8 med något som:

mysql_set_charset('utf8'); //note that MySQL uses no hyphen here

3:se till att dokumentet är utf-8 (du kan lägga till en rubrik högst upp)

<?php header('Content-type:text/html;charset=utf-8'); ?>

4:bara för att vara på den säkra sidan, lägg till den som en metatagg också

<meta http-equiv="content-type" content="text/html;charset=utf-8" />

MEN

Det är mycket möjligt att du har några duff-tecken i databasen där något som ISO-8859-1 har jonglerats till UTF-8, dåligt. I det här fallet kommer du att märka saker som £ där det du faktiskt vill ha är £ (eftersom UTF-8-tecken innehåller mer data än ISO-8859-1-tecken, kan den extra data bli ett extra tecken om du inte är försiktig).

I så fall är din bästa insats att rengöra databasen (du skulle förmodligen kunna göra något som UPDATE table SET field = REPLACE(field, '£', '£') för vanliga "fel") och konvertera sedan hela kaboodlen till UTF-8 (som beskrivs ovan) för att undvika att problemet återkommer.



  1. Hur Round() fungerar i PostgreSQL

  2. PHP Multiple Dropdown Box Form Skicka till MySQL

  3. Var ska jag lagra en främmande nyckel?

  4. Postgres now() tidsstämpel ändras inte när skriptet fungerar