Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2420 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Choisir le bon encodage

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Choisir le bon encodage

n°2079218
boss183
Posté le 30-05-2011 à 17:29:50  profilanswer
 

Bonjour à tous,
 
je viens vous pour que vous m'éclairiez à propos de l'encodage de mes pages PHP.  
J'utilise cette balise :
 
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
 
mais j'ai un problème avec les accents alors j'utilise utf-8
 
et là j'ai un autre problème c'est que les apostrophes sont remplacés par \'
 
L'autre souci c'est que j'ai un script PHP qui doit enregistrer des infos dans une BDD, le problème est que si ma clé primaire (en l’occurrence le titre de l'info) contient un apostrophe l'info ne s'enregistre pas dans la BDD.
Est-ce que je dois changer dans PHPMyAdmin l'interclassement (latin1_swedish_ci).
 
Pouvez-vous m'aider et me donner une solution ?
 
Merci d'avance
 

mood
Publicité
Posté le 30-05-2011 à 17:29:50  profilanswer
 

n°2079364
boss183
Posté le 31-05-2011 à 09:36:37  profilanswer
 

up

n°2079457
olivthill
Posté le 31-05-2011 à 11:34:52  profilanswer
 

Quand on utilise SQL, il faut, en effet, remplacer les apostrophes simples dans les chaines de caractères par deux apostrophes qui se suivent. C'est la norme SQL.
 
On peut aussi remplacer l'apostrophe par autre chose que par deux apostrophes successives, mais alors, lors de la lecture, il faudra faire le remplacement inverse. Avec le remplacement par deux apostrophes, il n'est pas nécessaire de faire le remplacement inverse lors de la lecture.
 
Donc, personnellement, je me suis créé une fonction que j'appelle systématiquement pour remplacer les apostrophes simples, et aussi pour faire un peu de ménage, quand j'utilise une chaine de caractères dans une clause where ou dans un Insert.
 

// ====================================================================
// Conversion d'une chaine, remplacant une apostrophe par deux apostrophes
// in:  $s1 = " Aujourd'hui  "
// out: "Aujourd''hui"
// ====================================================================
function apo($s1)
{
  $s1 = trim($s1); // enleve les espaces autour
  $s1 = trim($s1, "\xA0" ); // enleve les nbsp
  $s1 = stripslashes($s1); // enleve les slashs avant les apostrophes, etc.
  $s1 = str_replace("'", "''", $s1); // remplace les guillemets
 
  // supprime les caractères non imprimables (null, tab, backspace, ...)
  $s2 = "";
  for ($i = 0; $i < strlen($s1); $i++) {
     $c = substr($s1, $i, 1);
     if (ord($c) >= 32)
        $s2 .= $c;
  }
  return($s2);
}
 
// ====================================================================
// ====================================================================
...
  dbq = "Insert into Ma_table(code_toto, libelle_toto)"
          ." values ('".$code_toto."', " '".apo($libelle_toto)."')";
...


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Choisir le bon encodage

 

Sujets relatifs
Encodage caractèrecaractère qui ne passe pas (pb encodage ?)
[Ada] [Résolu] Problème d'encodage de caractères avec Ada sur Windowsquel format de certificat choisir
Import csv - encodage défaillantQuel langage de prog/ quel IDE choisir?
[MySQL] choisir la ligne retournée par GROUP BYRecherche de specialiste en streaming et encodage
convertir \u00eb en ë (résolu, problème d'encodage/décodage)Choisir l'encodage d'un composant particulier...
Plus de sujets relatifs à : Choisir le bon encodage


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR