2009-08-29 9 views
2

Je viens d'importer une énorme base de données MySQL. La plupart des champs sont latin1_swedish_ci, et ils contiennent beaucoup de chaînes corrompues.Récupération de caractères corrompus dans la base de données

par exemple. Cavit Y�r�kl� au lieu de Cavit Yürüklü

j'ai essayé de trouver une solution pour résoudre ces corruptions en utilisant PHP comme des thats tout ce que je connais un peu. J'ai joué sans succès avec le code utf8_ (en | de), iconv.

S'il vous plaît aider !!! Comme c'est beaucoup de corruptions.

MISE À JOUR: Réimporté en tant que Latin 1 et maintenant pour ci-dessus, Cavit Y�r�kl�. Donc c'est vraiment différent mais le sql lui-même semble être corrompu.

+0

"Je viens d'importer une énorme base de données MySQL." Pouvez-vous expliquer plus précisément ce que vous avez fait? Où l'avez-vous obtenu? C'était un fichier de vidage? Quel encodage a fait la base de données où vous avez obtenu le fichier de vidage (si c'était le cas)? –

+0

le vidage de DB contient déjà les caractères corrompus. il m'a été donné après la vente d'un site web, c'est la seule décharge restante. Je crois qu'il a utilisé l'encodage latin. –

Répondre

1

Oui, il utilise un mauvais encodage. Découvrez http://www.oreillynet.com/onlamp/blog/2006/01/turning_mysql_data_in_latin1_t.html pour savoir comment y remédier. Vous avez juste besoin de savoir quel encodage il est maintenant et ce que vous voulez qu'il soit et ensuite vous pouvez convertir. Ou configurez le db pour correspondre au codage des données que vous importez (si c'est une option)

+0

C'est génial à savoir mais dans mon cas, tous les personnages étaient corrompus d'une manière ou d'une autre à la même valeur, il était donc évident que les données étaient irréparables. –

0

D'abord je ferais une copie du db dump, alors j'essayerais using iconv - et je sais que vous avez dit que vous avez essayé mais il y a beaucoup, beaucoup de combinaisons de codages de caractères que vous pouvez essayer - j'ai dû réparer des données cyrilliques russes corrompues - ce qui a fini par fonctionner était de spécifier une valeur de sortie de 'UTF-8 // TRANSLIT' - j'essaierais tous les combinaisons que vous pouvez mais n'oubliez pas de conserver une copie de l'original.

Questions connexes