2011-01-06 8 views
2

Ich habe eine MySQL-Datenbank, die UTF8 codiert ist. Aufgrund einiger früherer Konvertierungsprobleme, die ich geerbt habe, wurden jedoch bestimmte Zeichenfolgen falsch in der Datenbank gespeichert.mysql php encoding

Zum Beispiel £ sollte als £ gespeichert werden, aber an vielen Orten wurde es als etwas gespeichert wie £.

Ich konnte alle Datensätze in der Tabelle aufspüren, die falsch codiert wurden. Was ist der einfachste Weg für mich, alle unnötigen Zeichen aus diesem varchar Datenbankfeld zu entfernen?

Ich habe preg_replace in PHP versucht, aber das scheint wirklich nichts zu tun.

return preg_replace("[^A-Za-z0-9£]", "", $string); 

Antwort

2

Sie müssen die Regex in abgrenzen:

return preg_replace("/[^A-Za-z0-9£]/", "", $string); 
+0

war dabei, also +1 für mich zu schlagen – DTest

0

Was aus diesem preg_replace Aufruf zurückgegeben wird, ein nicht betroffen String oder NULL? Wenn es Null ist, ist ein Fehler gemäß preg_replace manual aufgetreten. Anders als die fehlenden Trennzeichen, die @AndreKR gepostet hat, sieht es für mich gut aus (getestet mit der Zeichenkette £)