Grosso merdo, j'ai un dump d'une base en sql, le truc c'est que quand je fais un less dessus, chaque caractère est séparé par ^@, et quand j'essaye de le Googler la recherche ne fonctionne pas. J'ignore si c'est un truc d'encodage ou si mon less est foireux, mais j'aimerais bien savoir d'où ça vient...
Une idée?
Edit: apparemment ^@^M^@ représente le saut à la ligne...
Ça n'apparaît qu'avec less par contre, si je head/tail/cat le fichier, rien de bizarre
- L'encodage de ta base de données est-elle la même que celui de ton fichier ?
- Qu'utilises-tu pour faire ton dump ?
- Qu'utilises-tu pour faire ton less ?
Edit : Si c'est juste pour les sauts de ligne, c'est peut être ton less qui est mal configuré ou qui doit supporter que les sauts de lignes UNIX. Un truc dans le genre.
- la base n'est pas créé, c'est la première instruction du fichier
- le fichier je l'ai récupéré, ce n'est pas ma création, le dump était sous mysql 4.2 et ma base 5.7, mais j'ai déjà envisagé ce problème et ca n'en n'est pas un
- juste : less file.sql
Et j'ai un truc genre
^@C^@R^@E^@A^@T^@E
Édit: j'ai fais des test d'encodage et ce n'est pas ca
Après quelques recherches, la base était peut être en utf16, donc il ajoute un caractère null...
Tu as essayé de le convertir en utf8 avec iconv ?
(je me sens noob, je pensais que "less" voulait dire que tu souhaitais simplement compresser ton fichier...)
Dans ce cas, tu fais un search/replace du caractère null...
tr -d '\\0'
Edit : On en apprend tous les jours !
Cool ! Par contre, si le dump indique que le charset est utf16, il faudra sûrement changer tout ça en utf8 pour éviter d'avoir des problèmes de caractère.
Je parlais des indications de charset lors des CREATE TABLE dans ton dump. J'ai eu le même problème avec des bases utf8mb4. En remplaçant "utf8mb4" par "utf8" dans tout le fichier, ça m'a sauvé plus d'une fois...
Pour faire une copie d'une copie d'autres copies ?
Pas une super bonne idée ça.
https://fr.wikipedia.org/wiki/Copie