sql >> Database >  >> RDS >> Mysql

Er zijn symbolen zoals  enzovoort in de database, wat te doen?

Het hangt er een beetje van af wat het probleem eigenlijk is...

Als het is dat die tekens verondersteld zijn om daar te zijn (zoals "Mañana" in het Spaans), dan moet je ervoor zorgen dat alles in UTF-8 staat... de beste manier is om:

1:controleer of de databasetabellen in "utf-8"-codering zijn (zo niet, converteer ze naar utf-8)

2:zoals Martin opmerkte, zorg ervoor dat de databaseconnector utf-8 is met iets als:

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

3:zorg ervoor dat het document utf-8 is (je kunt bovenaan een koptekst toevoegen)

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

4:voeg het voor de zekerheid ook toe als metatag

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

Echter

Het is heel goed mogelijk dat je een paar duff-tekens in de database hebt waar iets als ISO-8859-1 slecht is gegoocheld met UTF-8. In dit geval zul je dingen opmerken als £ waar wat je eigenlijk wilt is £ (omdat UTF-8-tekens meer gegevens bevatten dan ISO-8859-1-tekens, kunnen die extra gegevens een extra teken worden als u niet voorzichtig bent).

In dat geval kunt u het beste de database opschonen (u kunt waarschijnlijk iets doen als UPDATE table SET field = REPLACE(field, '£', '£') voor veelvoorkomende "fouten") en converteer vervolgens de hele kaboodle naar UTF-8 (zoals hierboven beschreven) om te voorkomen dat het probleem zich herhaalt.



  1. Hoe kan ik de laatste twee woorden in een zin in PostgreSQL matchen?

  2. Swift httppost-gegevens worden niet in de MySQL-database ingevoegd

  3. Waarom is de maximale tijdslimiet van MySQL 838:59:59?

  4. Zal UUID als primaire sleutel in PostgreSQL slechte indexprestaties geven?