Re: zip_entry_name & accents
"Olivier Miakinen" <om+news@miakinen.net> a écrit dans le message de news:
46e128a8$1@neottia.net...
> Est-ce que ce qui suit est vrai ?
> è devient ‚ (qui n'est pas une virgule « , » mais un guillemet anglais)
> é devient Š (S avec caron)
> à devient -- (trois points en un seul caractère)
> ç devient ‡ (double-dagger)
> ë devient ‰ (pour mille)
Tout bon
> Si oui, c'est que tes noms de fichier sont écrits en CP850, jeu de
> caractères par défaut des MS-DOS occidentaux, alors que les titres
> attendent du CP1252, jeu de caractères par défaut des Windows
> occidentaux (sauf probablement les plus récents qui doivent être
> en UTF-8).
> La solution en PHP, maintenant ? Tu peux utiliser iconv pour convertir
> de CP850 vers CP1252. Voir <http://fr2.php.net/iconv>.
$k = iconv("CP850", "CP1252", $j);
Effectivement, ça roule ! ... enfin presque.
Avec 7-zip ou WinRar ça fonctionne, mais pas tout à fait avec WinZip.
En effet, quand WinZip trouve un oe ("e dans l'o") dans le nom de fichier il
semble qu'il utilise CP1252 (ou autre chose mais pas CP850), du coup de
décodage ne fonctionne pas et on obtient n'importe quoi.
Mais dans le même fichier Zip, d'autres fichiers accentués sans oe sont bien
écrits en CP850.
Le problème est le même sans passer par php, par exemple en zippant depuis
Winzip et en dézippant avec 7-zip.
J'avoue être complètement à l'ouest avec tous ces pbs d'encodage.
Est-ce qu'il y a un moyen de vérifier le jeu de caractère utilisé pour
déterminer si il faut le changer ?
Je ne vois rien ni dans iconv, ni dans php_zip.
En tout cas merci pour cette réponse précise,
Heulman
|