Categories > TinyButStrong general (FR) >

Problème de carractère spéciaux

The forum is closed. Please use Stack Overflow for submitting new questions. Use tags: tinybutstrong , opentbs
By: pierce
Date: 2006-02-15
Time: 10:50

Problème de carractère spéciaux

Bonjour,
J'ai un ptit bug au niveau des carractères spéciaux comme les é à et autre , ce problème ne ce fait que dans ma feuille php, exemple:
dans ma feuille php:
$msg = 'Bonne année!! votr référence est dédé';
dans ma feuille html :
<p>[var.msg]</p>
les é deviennent des sortes de A? et si j'utilise la fonction htmlentities ou que j'écris les carractéreé speciaux en ASCII &eacute; et bien ca me retourne &eacute; à la place des é sinon si j'utilise la fonction specialchars() ca me laisse le A?, j'ai mis aussi  le meta tag avec ISO 9... te même utilisé utf8_encode , mais toujours le mêmes problèmes et ceci ne ce fait que quand j'utilise le fonctions de TBS sinon sur une feuille html normal je mets &eacute; pour les é et tout se passe bien
By: Skrol29
Date: 2006-02-15
Time: 11:02

Re: Problème de carractère spéciaux

Bonjour,

TBS utilise htmlspecialchars() pour la conversion Html. Donc le "é" ne devrait pas être converti dans le source Html. Peux-tu vérifier le code source Html plutôt que l'affichage ?
Le "A?" qui s'affiche peut aussi dépendre du charset définie dans ton entête de la page Html. Sais-tu quel est ce charset ?
By: pierce
Date: 2006-02-15
Time: 11:36

Re: Problème de carractère spéciaux

Voila ma feuille en php :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <title>une lampe dans le stok</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <link href="css/style1.css" rel="stylesheet" type="text/css">
    <link href="css/style_crdp.css" rel="stylesheet" type="text/css">
</head>
<body>
<h1 "align = center">Fiche d'une lampe</h1>
<p></p>

<table align = "center">

    <tr class="amenu2" bgcolor=#AFCC9D onClick ="changeCouleur(this ,'#FFFF00')"  onMouseOver="changeCouleur(this,'#AFCC9D')">
        <td>R&eacute;f&eacute;rence</td>
        <td>Date de stockage</td>
        <td>Appareil</td>
        <td>Puissance</td>
        <td>tension</td>
        <td>Prix arrondit TTC Cddp en â&#130;¬</td>
        <td>Prix unitaire du lot 5 TTC en â&#130;¬</td>
        <td>Quantit&eacute; en stock</td>   
        <td>Remarque</td>
        <td>Seuil minimum</td>
    </tr>
   
    <tr class="amenu2" bgcolor=#E6E6E6 onClick ="changeCouleur(this ,'#FFFF00')"  onMouseOver="changeCouleur(this,'#E6E6E6')">
    <td>[blk1.refconstructeur]</td>
    <td>[blk1.datestockage;frm='dd/mm/yyyy']</td>
    <td>[blk1.appareil]</td>
    <td>[blk1.puissance]</td>
    <td>[blk1.tension]</td>
    <td>[blk1.prixarronditCDDPttc]</td>
    <td>[blk1.prixlot5CDDPttc]</td>
    <td><font color="[var.msg_color;if [blk1.quantstock]-=+[blk1.seuil];then #990000]">[blk1.quantstock]</font></td>
    <td>[blk1.remarquelampe]</td>
    <td>[blk1.seuil]</td>
    </tr>

</table>

<p align = "center">[var.msg_historique;.]</p>
<p align = "center">[var.msg_historique2;.]</p>

    <div id="formulaire2">
            <form action="retirer_stock2.php" method='post'>
                <fieldset>
                    <table>
                        <tr>
                            <td>Quanti&eacute; &agrave; retirer : </td>
                            <td>
                                <input type="text" name="quant" size="4" maxlength="4" value="" />
                            </td>
                        </tr>
                        <tr>
                            <td><td></td></td>
                            <td><input type='submit' name='submitaffiche' value='Afficher'></td>
                        </tr>
                    </table>
                </fieldset>
            </form>
        </div>
</table>
</body>
</html>

je mais la feuille php aussi :

include('include/entete.php');

include('include/menu.php');



$TBS = new clsTinyButStrong ;



$TBS->LoadTemplate('rechlampes_visit.htm');

$profil = $_SESSION['profil'];
if ($profil == 'utilisateur' OR $profil == 'administrateur')
{
$TBS->LoadTemplate('rechlampes.htm');
}

//Si la référence n'est pas rechercher par le lien de la feuille de toutlestok alors on affaiche chaine vide

if (isset($HTTP_GET_VARS["ref"]))

{

$ref = $HTTP_GET_VARS["ref"];

}else{

$ref = $_SESSION['ref'];

}

$TBS->MergeBlock('blk1',$cnx_id,"SELECT * FROM lampe WHERE refconstructeur = '$ref'");


$rq = "SELECT * FROM lampe, historique WHERE refconstructeur = '$ref' AND frequence = refhistorique";
$resultat = mysql_query($rq) or die (mysql_error());

$champs = mysql_fetch_array($resultat);
if ($champs == 0)
{
$msg_historique = 'Votre r&eacute;f&eacute;rence de lampe n\'est pas encore sortie du stock en cours.';
$msg_historique2 ='';
}else{
$msg_historique = 'Pour le mois de '.$champs["moisanneeencours"].' nous avons sortie '.$champs["cumulquantsortieparmois"].' lampe de cette référence ; nous lavons fait '.$champs["cumulnbsortieparmois"].' fois.';
$msg_historique2 ='Pour l\'année '.$champ["anneecivilencours"].' nous avons sortie '.$champs["cumulquantsortieparan"].' lampe de cette référence ; nous lavons fait '.$champs["cumulnbsortieparan"].' fois.';
}

$msg_color = '';

$msg_text = '';

mysql_close($cnx_id) ;

//include('include/pied_de_page.php');

$TBS->Show() ;



?>

Mon problème ce trouve dans mes varriables $msg_historique et $msg_historique2. Sinon dans la feuille html j'utilise les &eacute; pou les é et ainsi de suite pour les autres carractères spéciaux, sinon le charset est iso-8859-1 :
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
By: Skrol29
Date: 2006-02-15
Time: 11:54

Re: Problème de carractère spéciaux

Bon, à priori ça ne vient pas du charset.

Que sont les caractères "â&#130;¬" dans ton modèle HTML ?
De mon côté ils n'affichent rien de cohérent.

Tes variables $msg_historique et $msg_historique2 doivent contenir du texte normal, non converti en Html. Car TBS va le faire à ta place.
$msg_historique = 'Votre référence de lampe...';

Les accents "é" ne sont pas pas converti en Html, le charset ne l'exige pas. Si ils ne s'affichent pas corectement, peux-tu me donner le source de cette partie de texte, non pas du modèle, mais du résultat après fusion.
By: pierce
Date: 2006-02-15
Time: 15:12

Re: Problème de carractère spéciaux

les choses incompréhensible sont le signe € la première fois que je l'ai ouvert j'ai eu la même chose mais maintenant il m'affiche correctement le signe, quand je l'ouvre sous mon editeur bluefish il me montre ces signes incompréhensible mais sou mozila ca m'affiche le signe correctement.

Pour de la source voila :
<p align =" center">Pour le mois de 2 nous avons sortie 29 lampe de cette r&#65533;f&#65533;rence ; nous lavons fait 10 fois.</p>
<p align =" center">Pour l'ann&#65533;e  nous avons sortie 29 lampe de cette r&#65533;f&#65533;rence ; nous lavons fait 11 fois.</p>
By: pierce
Date: 2006-02-15
Time: 15:13

Re: Problème de carractère spéciaux

à moi ca m'affiche des points d'intérogations
By: Skrol29
Date: 2006-02-15
Time: 15:43

Re: Problème de carractère spéciaux

C'est un peu incompréhensible pour moi.

Je ne pense pas que cela vienne de TBS car on retrouve plein de pages Web avec cette erreur (recherche Google sur le mot 65533).

Il y a un problème similaire discuté ici :
  http://www.phpscripts-fr.net/forum1/lire.php?id=89082

Peux-tu faire un simple script PHP avec
$x = 'référence'; // un texte avec des accents
echo $x.' <br>'; // pas e conversion
echo htmlspecialchars($x,ENT_COMPAT,'').' <br>'; // conversion TBS
By: pierce
Date: 2006-02-15
Time: 16:47

Re: Problème de carractère spéciaux

J'ai essayer de faire le script, et .... surprise les deux références ce retrouvent avec des ?
By: Skrol29
Date: 2006-02-15
Time: 17:07

Re: Problème de carractère spéciaux

Ouaip, donc y'a un truc zarbi.
Tu as quelle version de PHP ?

Est ce bien le HTML source qui contient ces caractères "&#65533;" , non pas l'affichage ?
By: pierce
Date: 2006-02-15
Time: 17:15

Re: Problème de carractère spéciaux

Ouai c'est bien zarbi ;)
ma version de php est : PHP Version 5.0.5-2ubuntu1.1
et pour les carractères c'est bien un copier collé de ma feuille source,
j'ai lue ce qui était écrit sur le forum php script mais rien n'a vraiment été trouvé
By: pierce
Date: 2006-02-15
Time: 17:22

Re: Problème de carractère spéciaux

Au pire je te montr les carractéristique de mon navigateur :
Voici les caractéristiques de votre navigateur :
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.12) Gecko/20051010 Firefox/1.0.7 (Ubuntu package 1.0.7)

Mais sur d'autre c'est pareil, j'ai juste penser que ca pourrai venir du navigateur, au cas ou
By: Skrol29
Date: 2006-02-15
Time: 17:27

Re: Problème de carractère spéciaux

Le navigateur ne change pas le source HTML.
Tu a fais un tour du côté des bugs PHP sur ta version ?
By: pierce
Date: 2006-02-15
Time: 18:13

Re: Problème de carractère spéciaux

J'ai essayé de créer un fichier qui a pour titre carractère.php et j'ai mis dedans comme fonction phpinfo mais quand il me montre les in et la page où je me trouve il m'inscrit bien lé correctement
By: Arnauld
Date: 2008-08-21
Time: 17:21

Re: Problème de carractère spéciaux

Salut Skrol,

J'ai le même genre de problème aussi ...
j'ai essayé ton script donné plus haut pour l'encodage et les deux mot référence sont afficher avec des rectangles ...

J'utilise dans mes modèles le charset ISO-8859-1 qui est aussi celui par defaut de TBS.
Mes fichiers sont enregistrés en ANSI et les accents sont toujours mal affiché...

Si tu as plus d'idée que moi ... je suis encore preneur :)
By: Arnauld
Date: 2008-08-21
Time: 17:44

Re: Problème de carractère spéciaux

Bon ben moi j'ai trouvé mon problème ... cela vient de la classe RSS simplepie ...

Dès qu'on utilise cette classe et même si l'on défini un charset = à celui de TBS et bien le problème d'encodage se pose ...

si j'ai d'autre info je posterai ...
By: Arnauld
Date: 2008-08-21
Time: 17:46

Re: Problème de carractère spéciaux

Bon hé bien après avoir regardé la classe un peu plus en profondeur, il s'avère qu'il y a une méthode permettant de spécifier un "output_encoding"

donc problème résolu.