Bonjour
J'essaie de résoudre un petit problème qui ne prête pas à conséquence, mais qui pique quand même les yeux. J'ai bien vu que des questions similaires ont été posées, mais je n'ai pas vu de vraie réponse, donc je tente à nouveau ma chance.
J'ai créé un modeste CMS (1) avec donc son back-office et sa base de données. L'affichage est défini, comme tout le monde ou presque le conseille en utf-8 :
J'enregistre sans souci dans la base en prenant bien soin de signaler que c'est bien du utf-8 que j'envoie :
et au niveau de la base, tout ce que j'ai pu trouver comme réglage est réglé sur utf-8. Dans phpMyAdmin, au niveau du serveur, Interclassement pour la connexion au serveur = utf8_general_ci, dans opérations sur la base, Interclassement : utf8_general_ci ; à chacune des tables, également Interclassement : utf8_general_ci.
Reste que l'enregistrement sur la base c'est un encodage type ISO : "L'été indigène à l'abri des contrôles inouïs." devient "L'été indigène à l'abri des contrôles inouïs..". Si j'enregistre la phrase directement dans la base avec phpMyAdmin, l'affichage sur le site devient "L'?t? indig?ne ? l'abri des contr?les inou?s" .
Qu'est-ce que j'ai pu oublier ?
Merci d'avance
Réfléxive
1. Si vous vous demandez pourquoi se prendre le chou avec un CMS fait maison je répondrai que c'est pour comprendre et qu'on ne m'y reprendra plus !
J'essaie de résoudre un petit problème qui ne prête pas à conséquence, mais qui pique quand même les yeux. J'ai bien vu que des questions similaires ont été posées, mais je n'ai pas vu de vraie réponse, donc je tente à nouveau ma chance.
J'ai créé un modeste CMS (1) avec donc son back-office et sa base de données. L'affichage est défini, comme tout le monde ou presque le conseille en utf-8 :
<!DOCTYPE html>
<html>
<head>
<meta Charset='UTF-8'>
<title> ...
J'enregistre sans souci dans la base en prenant bien soin de signaler que c'est bien du utf-8 que j'envoie :
try {
$db= new PDO($dsn, $utilisateur, $mdp) ;
$db->exec('SET CHARACTER SET UTF-8');
$log = $log . "la connexion a réussi.<br>" ;
} catch (PDOException $e) {
echo "Raté!!! " . $e->getMessage() . "<br>" ;
die();
}
et au niveau de la base, tout ce que j'ai pu trouver comme réglage est réglé sur utf-8. Dans phpMyAdmin, au niveau du serveur, Interclassement pour la connexion au serveur = utf8_general_ci, dans opérations sur la base, Interclassement : utf8_general_ci ; à chacune des tables, également Interclassement : utf8_general_ci.
Reste que l'enregistrement sur la base c'est un encodage type ISO : "L'été indigène à l'abri des contrôles inouïs." devient "L'été indigène à l'abri des contrôles inouïs..". Si j'enregistre la phrase directement dans la base avec phpMyAdmin, l'affichage sur le site devient "L'?t? indig?ne ? l'abri des contr?les inou?s" .
Qu'est-ce que j'ai pu oublier ?
Merci d'avance
Réfléxive
1. Si vous vous demandez pourquoi se prendre le chou avec un CMS fait maison je répondrai que c'est pour comprendre et qu'on ne m'y reprendra plus !