MySQL et character set ?

Le
Une Bévue
je tourne en rond à propos du character set de Mysql.
avec :
$mysqli = new mysqli("127.0.0.1", $user, $password, $database, $port);

echo "character_set = " . mysqli_character_set_name($mysqli) . "<br />";

me retourne :
"character_set = latin1"

alors que j'ai changé les différents character set en 'utf8' et les
différentes collation en 'utf8_general_ci'.

j'ai même réécrit ma base de test pour m'assurer de l'encodage.

ce problème persiste aussi bien sur Xubuntu 12.10 que Mac OS X Mountain
Lion.

Bien sûr, si je poste c'est que l'encodage correspond à latin1 et pas à
utf8.

le script de création de la table :
CREATE TABLE `categories` (
`rowid` int(11) NOT NULL,
`idx` int(11) NOT NULL,
`name` varchar(80) NOT NULL DEFAULT ''
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
L'homme est imparfait, mais ce n'est pas étonnant
quand on pense à l'époque où il a été créé.
— Alphonse Allais
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Une Bévue
Le #25143282
Le 16/01/13 16:25, Une Bévue a écrit :
ce problème persiste aussi bien sur Xubuntu 12.10 que Mac OS X Mountain
Lion.



où j'utilise de ces 2 côtés "mysqli".


Bon j'ai trouvé "un peu par hasard"...
Le problème proviendrait, d'après ce que j'ai compris, de l'interface
entre MySQL et PHP5 "mysqli", il faut spécifier le charset voulu :

Avec :
$mysqli = new mysqli("127.0.0.1", $user, $password, $database, $port);

utiliser :

$mysqli->set_charset("utf8")

c'est curieux que cette interface transcode en latin1...



--
L'homme est imparfait, mais ce n'est pas étonnant
quand on pense à l'époque où il a été créé.
— Alphonse Allais
Publicité
Poster une réponse
Anonyme