sonerezh icon indicating copy to clipboard operation
sonerezh copied to clipboard

Accents dans les fichiers non supporté

Open TheBlackReverand opened this issue 8 years ago • 4 comments

Bonjour,

Je viens de tester Sonerezh et j'ai quelques difficultés sur le scan de ma bibliothèques.

Chaque nom de dossier ou fichier de musique possédant un accent fait crasher le process d'import.

La page reste sur "scan en cours, ne pas changer de page". Si je sort et relance j'ai un lock (j'ai fait un delete manuel de celui-ci pour "debugger" le process)

Sonorezh 1.1.1 Win7 Chrome 51.0.2704.84 m wampserver3_x64_apache2.4.17_mysql5.7.9_php5.6.16_php7.0.0.exe Base mysql en utf8_general_ci

J'ai checké la BDD et les meta contenant des accents sont bien géré.

Par contre je n'ai pas trouvé beaucoup de log.... Voici la seul trace qui pourrais être intéressante... "INFO: Could not find files for the given pattern(s)." C:\wamp64\logs\apache_error.log

Merci et bon courage

TheBlackReverand avatar Jun 16 '16 14:06 TheBlackReverand

Je viens d'ajouter un try/catch dans le fichier SongsController.php à la ligne if (!$this->Song->save($parse_result['data']))

Voici le message de l'exception

catch save : SQLSTATE[HY000]: General error: 1366 Incorrect string value: '\xE9parab...' for column 'source_path' at row 1

TheBlackReverand avatar Jun 16 '16 15:06 TheBlackReverand

Je suis remonté jusque dans Cake.

DboSource.php if ($this->execute($this->renderStatement('create', $query)))

Si je récupère le retour de "renderStatement" j'obtiens le SQL suivant (via error_log(...))

INTO sonerezh.songs (title, artist, band, album, track_number, playtime, year, genre, cover, source_path, modified, created) VALUES ('Inséparables', 'Mylène Farmer', 'Mylène Farmer', 'Bleu Noir', 12, '3:15', 2010, 'Variété française', 'bc83af41885a8d6ea24e4247cff0b1d3.jpeg', 'C:\musiques\Mylene Farmer\Bleu Noir\12 Inséparables.mp3', '2016-06-17 09:17:54', '2016-06-17 09:17:54')

On y vois que les accents des méta-data ne sont pas encodés de la même manière que les accents du PATH.

Ne connaissance pas trop php je vais avoir du mal à pousser plus loin l'analyse.... A votre avis? pb de config ou un bug d'encodage?

TheBlackReverand avatar Jun 17 '16 09:06 TheBlackReverand

Rebondissement! Il me prend un doute....j'ouvre à nouveau mon fichier de log mais avec Notepad++ et je remarque que le fichier est en ANSI!! Alors que toute l'appli est en UTF8(sans BOM).

Une fois le log décodé correctement je remarque que le SQL problématique est en fait:

INSERT INTO sonerezh.songs (title, artist, band, album, track_number, playtime, year, genre, cover, source_path, modified, created) VALUES ('Inséparables', 'Mylène FARMER', 'Mylène Farmer', 'Bleu Noir', 12, '3:15', 2010, 'Variété française', '65d7542a9c682c3a147cdca6eaf483e3.jpeg', 'C:\musiques\Mylene Farmer\Bleu Noir\12 Ins걡rables.mp3', '2016-06-17 15:00:13', '2016-06-17 15:00:13')

Et que dans la fonction import() de SongsController.php j'ai: file = C:\musiques\Mylene Farmer\Bleu Noir\12 Ins걡rables.mp3

J'ai donc un problème de parcours de mes dossiers, l'encodage n'est pas prise en compte.

D'après ce post http://stackoverflow.com/a/4030739 cela pourrais être lié à l'encodage utilisé par mon OS (un windows 7 US).

Dans le dossier Folder.php j'ai ajouter une trace aprés "$name = $item->getFileName();"

error_log("name = " . $name . " - " . mb_detect_encoding($name) . " - " . utf8_encode($name));

j'obtiens alors

[17-Jun-2016 15:37:56 UTC] name = 10 Diabolique mon ange.mp3 - ASCII - 10 Diabolique mon ange.mp3 [17-Jun-2016 15:37:56 UTC] name = 12 Ins걡rables.mp3 - UTF-8 - 12 Inséparables.mp3

On y vois donc un encodage différent suivant la présence ou non de caractères accentués.

Je vais essayer de d'utiliser utf8_encode sur tous les fileName et pathName pour voir si je peux maintenant importer des dossiers et fichiers avec accents....

TheBlackReverand avatar Jun 17 '16 15:06 TheBlackReverand

Bonjour,

En effet j'avais personnellement essayé d'installer Sonerezh sur Windows (Windows Server, puis Windows 7) mais je n'ai jamais réussi à avoir quelque chose de stable et parfaitement fonctionnel.

Le support WIndows n'est donc pas du tout garanti...

lGuillaume124 avatar Sep 19 '16 20:09 lGuillaume124