Comment convertir le é Dos en é Windows? [PHP5 en ligne de commande] - PHP - Programmation
Marsh Posté le 10-01-2006 à 10:07:46
ça n'a peut-être pas de lien mais quand j'utilisais la fonction "printf" en C, j'avais le même problème alors je remplaçais les "é" par " \202 ", les "è" par " \209 ", les " à " par " \205 " etc.. Le nombre correspond à la valeur ascii en décimal et ça fonctionnait.
L'idée serait donc de faire un str_replace avant ta fonction system:
$dir=str_replace(array("é","è","à" ),array("\202","\209","\205" ),$dir);
Marsh Posté le 10-01-2006 à 19:36:55
Slt,
si, ton cas est sensiblement pareil au mien. Aujourdh'ui j'ai essayé quelquechose qui s'est révélé efficace. J'ai modifier le codepage de mon shell avant de taper ma commande php, grace à ceci:
Code :
|
c'est le code du latin1 et ensuite tous les é deviennent ù.
Cette facon marche mais la tienne aussi remi-san (meme si je l'ai pas testé), donc voila ca pourra peut etre interesser quelqu'un.
++
Marsh Posté le 08-06-2012 à 15:01:11
Ravis de voir que mes recherches google sur ledit problème me ramène des topics de 2006.
PHP + Windows, fatal combo.
Marsh Posté le 09-01-2006 à 21:46:29
Bonjour,
J'utilise PHP en ligne de commande sur Windows. Parmi tous mes scripts PHP, j'en ai un qui prend en paramètre un nom de fichier (avec son chemin d'accès).
Mon problème c'est que lorsque je passe en paramètre un chemin d'accès qui possède des accents (c:\Répertoire par exemple), ceux-ci sont remplacés par des caractères spéciaux, et donc ca implique que le chemin d'accès du fichier passé en paramètre est introuvable.
Par exemple, si je prends ce code:
et bien j'ai en sortie j'ai le é qui est remplacé par un autre caractère
Ma question est: existe t-il une fonction qui permette de faire la conversion du "é" Dos en "é" Windows? je n'ai rien trouvé dans la documentation PHP (escapeshellarg() met des guillement, tandis que escapeshellcmd() ne traite pas les accents)
A+