La joie de l'encodage des caractères

Bonjour,

je patauge dans l’encodage des caractères.

Je stocke dans une base mysql des chemins vers des playlists m3u qui contiennent des à é è î etc…
J’interroge la base en php, qui a son tour utilise ce chemin dans un appel exec() ou shell_exec(), tout ca pour appeller nyxmms2 addpls

Et bien sur ca déconne! xmms2d ne trouve même pas le m3u.
(alors qu’en console ca fonctionne)

(je ne parle même pas du contenu du m3u qui contient aussi des caractères spéciaux…)

MySQL supporte l’utf8, mais php5? semblerait il plus ou moins possible avec des fonctions particulières.
Mais quel est l’encodage utilisé par les fonctions mysql_fetch_row? exec?
Quand on est en console, quel est l’encodage utilisé pour l’affichage?
Quels types d’encodage support xmms2? et son plugin m3u?

Bref, si un guru de l’encodage des caractères à les idées claires sur le sujet, je suis preneur.

Salut

Une petite vérif de la prise en charge de l’UTF8 par MySQL ne fait pas de mal :wink:

mysql -u root -p mysql> SHOW VARIABLES LIKE 'char%';
Devrait renvoyer quelque chose comme:

[quote]±------------------------±------------------------------+
| Variable_name | Value |
±------------------------------±------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
±------------------------------±------------------------------+
8 rows in set (0,00 sec)[/quote]

Puis il reste l’encodage de la page web elle-même qui doit lui aussi être UTF8. J’utilise Notepad++ dont le menu [Encodage] permet de vérifier ou convertir l’encodage d’un fichier.

Enfin, pour vérifier le support de l’UTF8 au niveau Apache et PHP, une petite page web contenant:

<?php phpinfo(); phpinfo(INFO_MODULES); ?>
devrait entre autres choses contenir une ligne:

Voilà j’espère que cela aidera un peu…

Par principe, chez moi, TOUS les fichiers sont en minuscules, sans espace et SANS aucun accent.
La première chose que je fais quand je reçois un fichier (surtout des photos) qui en contient, c’est d’en modifier le nom dans ce sens

Je rajoute à ce qu’a dit Fatimon qu’il faut vérifier que ton fichier soit encodé en UTF-8(sans BOM, mais ça ça sert pour tout ce qui est session/cookie/header surtout)
Et que dans ton tu déclares bien UTF-8 comme encodage (et aussi qu’apache ne soit pas configuré pour effacer le charset par défaut (mais c’est plutôt rare comme option)).
Ah, les joies de l’encodage avec php …

[quote=“ricardo”]Par principe, chez moi, TOUS les fichiers sont en minuscules, sans espace et SANS aucun accent.
La première chose que je fais quand je reçois un fichier (surtout des photos) qui en contient, c’est d’en modifier le nom dans ce sens[/quote]

A un moment c’est à l’informatique de se plier aux désirs de l’utilisateur… Renoncer aux accents dans les noms de fichiers quels qu’ils soient juste parcequ’un logiciel ou OS ne sait pas les gérer, c’est dommage. Quand vraiment j’ai tout essayé sans trouver de solution, c’est le logiciel qui passe à la trappe, pas l’inverse :018