Tutoriaux divers et variés

Gestion de l’encodage, des caractères accentués

Par le 15 décembre 2017 dans Divers, Ressources, Support 3WA | 0 commentaire

Introduction

Afin de pouvoir gérer correctement le stockage, la récupération et l’affichage de caractères accentués ou autres kanjis, il est important d’avoir un bon encodage sur l’ensemble des supports de notre site ; sous peine de se retrouver avec des caractères mal gérés ��� ^^’

Pour cela, il y a 3 points clés :

Base de données

Doit être géré à deux endroits :

  • Lors de la création de la base de données, il faut bien spécifier l’ Interclassement en tant que  utf16_general_ci dans la liste déroulante (vous pouvez sélectionner la liste et taper « utf » pour y naviguer plus rapidement).
  • Egalement lors de l’ajout des données, attention à ajouter du contenu directement bien encodé (notamment lors de l’ajout via PHP)

En cas de BDD mal créée, vous pouvez toujours aller sur cette dernière (via phpMyAdmin) et aller dans l’onglet Opérations afin d’y changer l’encodage de tous les champs concernés. Penez à vérifier de visu ( Une table > Afficher ) qu’il n’y a pas eu de problèmes lors de cette opération.

 

Lors de la connexion à la bdd

Lors de la création de votre PDO dans le fichier php/_connexion.php, pensez à spécifier votre encodage.
Trois possibilités :

  • soit en l’ajoutant après la déclaration de la base de données,
    • new PDO(‘mysql:host=’ . $host . ‘;dbname=’. $dbname . ‘;charset=UTF8‘ . , $user, $pass);
  • soit le spécifiant dans le 4eme attribut de la création du PDO
    • $db = new PDO(‘mysql:host=myhost;dbname=mydb’, ‘login’, ‘password’, array(PDO::MYSQL_ATTR_INIT_COMMAND => ‘SET NAMES \’UTF8\ »));
    • cf. commentaires dans la doc officielle.
  • soit en utilisant $pdo->exec une fois ce dernier créé
    • $pdo->exec(« SET NAMES ‘utf8′; »);

Je recommande l’utilisation de la troisième méthode, parce que.

Ce qui, une fois l’ensemble de la doc et des bonnes pratiques compilées, devrait donner un fichier de ce genre :

_connexion.php

(WordPress bloque l’ajout de .php, il sera à renommmer de .txt en .php ;) )

 

Encodage des fichiers

Problème moins récurrent ces dernières années mais qui peux parfois être la source d’un mauvais encodage : vos fichiers en eux même. Il faut qu’ils soient encodés en utf-8 avec BOM.

Afin de le vérifier, vous pouvez modifier vos préférences d’éditeur de texte (par exemple avec Sublim text 3 ).

Pour le changer manuellement :
Dans vos fichier même > Fichier > Sauvegarder avec l’encodage > UTF16 With BOM

Tags: , , , , , , , , , , , , , , , , , , ,

Poster une réponse

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>