ENCORE UN !? Mais qu’est-ce qui se passe en ce moment, il y a un portail vers les années 90 qu’on a oublié de refermer ou quoi ?
Il reste à tester si le problème survient lors du transfert entre le client et le serveur web, ou lors de la communication entre le serveur web et la base de données.Ce code affiche bien les émoticones avec la tablette. Donc c'est au niveau du transfert vers la base de données.
Un texte du type "é & ç à" passe bien dans la bdd, que puis-je faire maintenant ?
Pour le premier cas, tu peux utiliser le panneau réseau des outils F12 pour voir si le contenu des requêtes a la bonne forme.
Pour le second cas, il faut vérifier certaines choses :
quel encodage as-tu défini avec mysqli_set_charset ?
quel est l’encodage de ta base ? (Souvent, c’est plus facile d’avoir l’information de l’interclassement.)
Si l’encodage / interclassement des tables est différent de celui de la base, c’est celui de la table qui est utilisé. Donc vérifie également celui de la table.
Voici un code SQL que j’ai testé sous PHPMyAdmin. Si les choses se passent bien, il devrait te retourner une table avec une colonne `emoji_text` dans laquelle tu verras un emoji correctement affiché. Ce code suppose que tu as une base nommée `test` sur ton serveur. Si ce n’est pas le cas, modifie simplement la commande USE, donne-lui le nom d’une base qui existe.
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 USE `test`; DROP TABLE IF EXISTS `emoji`; CREATE TABLE `emoji` ( `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, `emoji_text` CHAR(4) NOT NULL, PRIMARY KEY (`id`) ) ENGINE = MyISAM CHARSET = utf8mb4 COLLATE utf8mb4_general_ci; INSERT INTO `emoji` (`emoji_text`) VALUES(0xf09f9880); SELECT * FROM `emoji`;
Note : j’ai inséré l’emoji sous forme hexadécimale ici (0xf09f9880), mais c’est seulement parce que le forum Developpez.com ne me permet pas de l’écrire directement. En situtaion réelle, tu devrais normalement pouvoir insérer un emoji sans avoir besoin de le convertir.
N’oublie pas de mettre des guillemets autour.
Partager