IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI, CMS, Outils, Scripts et API PHP Discussion :

[Configuration] Caractères accentués avec SVN


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Juin 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 4
    Points : 1
    Points
    1
    Par défaut [Configuration] Caractères accentués avec SVN
    Bonjour à tous,

    Je suis en train de créer un projet permettant d'utiliser SVN à travers une interface web. Je suis parti de websvn 2.0.

    L'idée est de créer un dossier "working_copies" adossé à un repository sur le serveur d'y copier les fichiers uploadé avec un classique formulaire et de lancer un 'svn add' puis un 'svn commit' par le biais de la fonction shell_exec de php.

    Cela fonctionne bien pour les fichiers sans accents mais dès que le nom du fichier ou le message de log contient un caractere accentué ça ne marche plus. Pourtant j'ai tout essayé en terme de conversion en ut8, ... Je précise que ce sont les commandes passées via shell_exec qui ne fonctionnent pas car le fichiers lui est correctement copié dans le répertoire.

    error.log de apache retourne quelque chose comme "svn: can't convert string to utf8 encoding'.

    Un autre problème qui est peut etre lié: quand j'ajoute "à la main" un fichier avec un accent dans le repository via le shell, websvn affiche à la place du é ?\195?\169 par exemple.

    Je ne sais plus quoi faire?

    (J'ai mis en place une conversion des caractere accentué en non accentué mais bon ça ne me satisfait pas vraiment, surtout pour les messages de log)

  2. #2
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 487
    Points : 5 134
    Points
    5 134
    Par défaut
    Le fichier doit être également converti pas seulement les caractères...

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Juin 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Je pense pas que ce soit un problème d'encodage du fichier car le problème est le même lorsqu'il s'agit d'un fichier binaire. (.pdf par exemple)
    Je pense que c'est un problème avec la fonction shell_exec....

    C'est peut être un problème comme celui-ci http://groups.google.com/group/fr.co...83a07a32d8d7af

    J'ai l'impression qu'éxécuter une script via shell_exec n'est pas tout à fait équivalent à l'exécuter via le terminal. non? La configuration est sans doute différente en terme d'encodage des caractères, reglage des locales...

    Pour vous faire une idée voici un extrait de mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
     
    <?php
     
    //upload.php
     
    function replaceSpecialChar($texte){	
    	$texte = str_replace(" "," ", $texte);
    	$texte = str_replace("\'", " ", $texte);
    	$texte = str_replace("é","e", $texte);
    	$texte = str_replace("è","e", $texte);
    	...
    return $texte;
    }
    session_start();
    $login = $_SESSION['login'];
     
    $log  = $_POST['log'];
     
    if( isset($_POST['upload']) ) // si formulaire soumis
    {
     
    	//On fixe le repertoire où sera placé le fichier
    	$content_dir = '/var/www/working_copies/monprojet/';
     
    	$tmp_file = $_FILES['fichier']['tmp_name'];
     
    	if( !is_uploaded_file($tmp_file) )
    	{
    		exit("Le fichier est introuvable");
    	}
     
    	/*//On vérifie maintenant l'extension
    	$type_file = $_FILES['fichier']['type'];
    
    	if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') )
    	{
    		exit("Le fichier n'est pas une image");
    	}*/
     
    	//On copie le fichier dans le dossier de destination
    	$name_file = $_FILES['fichier']['name'];
     
    	//On remplace les caractères speciaux par des entities, PARCEQUE SINON LES ACCENTS FONT TOUT FOIRER
    	$name_file = replaceSpecialChar($name_file);
    	$log = replaceSpecialChar($log);
     
    	if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )
    	{
    		exit("Impossible de copier le fichier dans $content_dir");
    	}
     
    	//On modifie les droits d'accès au dossier et au repository
    	chmod("/var/www/working_copies/monprojet", 0777);
    	chmod("/var/www/repositories/monprojet", 0777);
     
    	//On met le fichier sous le régime de controle de version via la commande add de svn
     
    	$script_add = "svn add";
    	$com_add = "$script_add /var/www/working_copies/monprojet/$name_file";
    	shell_exec($com_add);
     
     
    	//On fait un commit pour faire créer une nouvelle révision en passant le login en argument de --username
    	$script_commit = "svn --username $login commit -m '$log'";
    	$com_commit = "$script_commit /var/www/working_copies/monprojet";
    	shell_exec($com_commit);
     
    	//on remet les droit (755)
    	chmod("/var/www/working_copies/monprojet", 0755);
    	chmod("/var/www/repositories/monprojet", 0755);
     
    	//Redirection
    	header("Status: 301 Moved Permanently", false, 301);
    	header("Location: http://127.0.0.1/");
    	exit();
     
     
    }
    ?>
    Voilà ou j'en suis...

  4. #4
    Nouveau Candidat au Club
    Inscrit en
    Juin 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Personne n'a la moindre idée? Connaissez vous un site ou je puisse trouver des infos très détaillé sur la fonction shell_exec?

  5. #5
    Membre actif
    Inscrit en
    Juillet 2007
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 201
    Points : 241
    Points
    241

  6. #6
    Nouveau Candidat au Club
    Inscrit en
    Juin 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Merci pour toutes vos réponses mais je n'arrive toujours pas à régler ce problème.
    Quelqu'un peut il essayer de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    shell_exec(mkdir 'chemin quelconque'/oké);
    ?>
    Dites moi si le répertoire est bien créé avec l'accent?

    Je pense que le problème vient d'apache et de la configuration des locales.
    Avez-vous des infos au sujet de la configuration des locales dans apache?

Discussions similaires

  1. [AJAX] Caractères accentués avec Ajax
    Par julieng31 dans le forum AJAX
    Réponses: 12
    Dernier message: 25/08/2009, 00h14
  2. pb caractères accentués avec la fonction raw_input et la fenêtre OS
    Par bourgui78 dans le forum Général Python
    Réponses: 2
    Dernier message: 27/08/2008, 13h31
  3. Caractères accentués avec <html:link>
    Par papysam dans le forum Struts 1
    Réponses: 5
    Dernier message: 25/05/2007, 15h18
  4. Problème de caractères accentués avec CAM::DBF
    Par ustilago dans le forum Modules
    Réponses: 4
    Dernier message: 23/06/2006, 08h46
  5. caractères accentués avec Tsearch2
    Par nilytel dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 25/05/2005, 11h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo