récupérer les accents d'une exportation phpMyAdmin en latin1_bin

Eléphanteau du PHP | 23 Messages

11 déc. 2007, 02:40

:D bonjour,

J'ai récemment été bousculé par mon hébergeur pour changer mon forum de serveur et dans la panique, j'ai cru bien faire en changeant l'interclassement de ma base de donnée MySql (pour forum punBB) en latin1_bin au lieu de latin1_swedish. Je sais, c'est très con, mais on a tous débuté un jour :oops:

Résultat : tous les accents sont à se jeter par la fenêtre :twisted:

Est-ce qu'il y a un moyen de rattraper le coup, sachant qu'aucune nouvelle exportation n'est possible ? (serveur formaté). :cry:

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

12 déc. 2007, 19:26

:cry:
Mais tu peux mettre le tout dans Word le corriger automatiquement puis enregistrer en mode texte sans mise enforme (.txt) puis importer les données dans la base.
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Eléphanteau du PHP | 23 Messages

13 déc. 2007, 01:01

:? Ca, c'est une idée qui m'aurait plu mais...

Voici un extrait de ma table pour voir à quel point c'est pas gagné :

Code : Tout sélectionner

-- -- Contenu de la table `categories` -- INSERT INTO `categories` (`id`, `cat_name`, `disp_position`) VALUES (3, 0x41637475616c6974c3a973206465206c61204672616ec3a761667269717565206475204e6f7264, 1), (5, 0x4c61204672616ec3a76166726971756520706172206d617469c3a8726573207072656d69c3a8726573, 6), (6, 0x4250454d3a204269656e73205075626c69637320c3a0206c27456368656c6c65204d6f6e6469616c65, 7), (7, 0x4c6520666f72756d206c75692d6dc3aa6d65, 0), (9, 0x486973746f697265206465206c61204672616e6361667269717565, 8), (10, 0x41637475616c6974c3a973206465206c61204672616ec3a761667269717565205375622d536168617269656e6e65, 2), (11, 0x41637475616c6974c3a973206465206c61204672616ec3a761667269717565204f7269656e74616c65, 3), (12, 0x41637475616c6974c3a973206465206c61204672616ec3a761667269717565204175737472616c65, 4), (13, 0x41637475616c6974c3a9732064657320657874656e73696f6e73206465206c61204672616ec3a761667269717565, 5), (14, 0x536f757263657320657420726573736f7572636573, 9);
Alors avec ça, notepad++ comme word me sont de peu de secours, à moins d'un "truc" comme j'en ai vu sur le web, mais aucun n'a marché.

Un exemple de ces "trucs" : http://www.developpez.net/forums/showthread.php?t=86696

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

13 déc. 2007, 18:40

En fait, les noms de tes catégories sont codé en héxadécimal car ils commencent tous par 0x
Il faut les décoder de l'exadécimal en texte en utilisant un outil de décodage.

Vas sur ce site http://www.paulschou.com/tools/xlate/ il propose le décodage en ligne.
et copie/colle le texte codé dans la case HEX en enlevant le "0x" puis clique sur le bouton "DECODE", le logiciel te décodera alors en texte ASCII.

Exemple:

Les codes Héxa que t'as dans ta table de catégories sont:
  • 41637475616c6974c3a973206465206c61204672616ec3a761667269717565206475204e6f7264
    4c61204672616ec3a76166726971756520706172206d617469c3a8726573207072656d69c3a8726573
    4250454d3a204269656e73205075626c69637320c3a0206c27456368656c6c65204d6f6e6469616c65
    4c6520666f72756d206c75692d6dc3aa6d65
    486973746f697265206465206c61204672616e6361667269717565
    41637475616c6974c3a973206465206c61204672616ec3a761667269717565205375622d536168617269656e6e65
    41637475616c6974c3a973206465206c61204672616ec3a761667269717565204f7269656e74616c65
    41637475616c6974c3a973206465206c61204672616ec3a761667269717565204175737472616c65
    41637475616c6974c3a9732064657320657874656e73696f6e73206465206c61204672616ec3a761667269717565
    536f757263657320657420726573736f7572636573

Leur décodage en Texte est le suivant:
  • Actualités de la Françafrique du Nord
    La Françafrique par matières premières
    BPEM: Biens Publics à l'Echelle Mondiale
    Le forum lui-même
    Histoire de la Francafrique
    Actualités de la Françafrique Sub-Saharienne
    Actualités de la Françafrique Orientale
    Actualités de la Françafrique Australe
    Actualités des extensions de la Françafrique
    Sources et ressources
Après tu n'as qu'à retoucher un p'tit peu pour réctifier les codes accentués telque:
é : é
ç : ç
è : è
à : à
ê : ê
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Eléphanteau du PHP | 23 Messages

13 déc. 2007, 23:54

:) Excellent !

Ce lien me servira surement. Par contre, dans l'immédiat je crois que je vais renoncer à tout reprendre : ça voudrait dire un travail considérable pour conserver des morceaux comme

Code : Tout sélectionner

(5, 0x6672616e6361667269717565, 0x43c3b4746520642749766f697265203a206c6120666f7274756e65206427486f7570686f75c3ab74, 1191435663, 1191435663, 5, 0x6672616e6361667269717565, 5, 0, 0, 0, NULL, 26), (6, 0x6672616e6361667269717565, 0x4c65207175616472696c6c616765206d696c697461726f2d706f6c6963696572206475206761626f6e61697320426f6e676f2e, 1191438038, 1191438038, 6, 0x6672616e6361667269717565, 6, 0, 0, 0, NULL, 9), (7, 0x6672616e6361667269717565, 0x4e6967c3a9726961203a206c2768756d616e6974616972652061752073657276696365206465206c6120677565727265, 1191489704, 1191489704, 7, 0x6672616e6361667269717565, 7, 0, 0, 0, NULL, 7),
Ma table est pas bien grosse pour un forum (2Mo) mais ça fait déjà 36 000 lignes où il faudrait supprimer tout ce qui est autour de l'hexa (les valeurs parenthèses, commentaires, titres, instructions SQL...), traduire, puis remettre le tout pour importer la base à nouveau !

Traduire l'hexa c'est bien, mais s'il faut le nettoyer de toutes ses scories, c'est long !

En tous cas merci pour cette solution : extrêmement laborieuse, mais possible en effet...

Maintenant s'il était possible d'exporter la base directement en format "lisible", où il n'y ai plus que les accents à modifier, ça serait plus rapide ! mais ça j'ai pas trouvé comment le faire, alors qu'apparemment certains y parviennent d'après les posts lus ici et la dans les forums. :?:

Exporter en format "lisible", faisable ou pas ?

EDIT : j'y suis arrivé avec la même BDD "assainie", c'est à dire où j'ai supprimé toutes les discussions et corrigé le reste, grace au format "ANSI" à l'exportation. Mais impossible avec la BDD initiale, qui reste en hexa même si je demande "ANSI", je comprend pas pourquoi.

EDIT II : CA Y EST !!!!

il fallait décocher :
Insertions complètes
Insertions étendues
et demander la compatibilité ANSI !

Je suis sauvé :D :D :D Merci merci merci ! J'avais abandonné l'idée et je suis de nouveau sur les rails ! C'est beau la technique, je manque juste de sérieuses bases sur phpMyAdmin... (entre autre choses... ) :wink:

EDIT III : :twisted: :twisted: :twisted:

Impossible de réussir de nouveau une exportation avec du "lisible". Je comprend pas comment j'ai fait. à croire que ça relève de la magie... :roll:

EDIT IV : tout arrive : c'est en fait la dernière case "Encoder les champs binaires en hexadécimal" qu'il faut décocher...