- Ymox,
Bonsoir tout le monde !
Je n’aurais pas vraiment pensé que j’aurais à ouvrir un sujet à ce propos, comme quoi…
J’aimerais utiliser certains emojis dans une base de données. Celle-ci est en UTF-8, collation utf8_unicode_ci
. Ma connexion est en utf8
, apparemment si je mets utf8mb4
c’est tronqué ou remplacé ou que-sais-je, mais c’est bien utf8
qui est utilisé au final.
Les emojis que je souhaite utiliser sont les suivants :
- 🔥 (U+1F525)
- 💧 (U+1F4A7)
- ❄️ (U+2744)
- 🏳️ (U+1F3F3)
- ⚡ (U+26A1)
- ⛰️ (u+26F0)
- 🌌 (U+1F30C)
- ☀️ (U+2600)
Dans un premier temps, je pensais utiliser du texte brut, donc aucun souci, puis je me suis trituré les méninges pour trouver les caractères qui auraient un aspect uniforme chez moi et qui puissent représenter ce que je souhaitais. Je pensais les insérer en passant par phpMyAdmin.
Mais évidemment, je n’avais pas la possibilité de saisir les caractères 1, 2, 4 et 7. J’ai donc fait le moche et en ne changeant que la collation de la colonne qui allait les contenir (passée de utf8_unicode_ci
à utf8mb4_unicode_ci
), j’ai pu les saisir, ils s’affichaient (et s’affichent encore et toujours) correctement dans phpMyAdmin, mais en plus aussi dans l’application avec deux navigateurs (Firefox 59 et Edge — quitte à tester sur plusieurs navigateurs, au moins le faire sur deux à ce point différents).
Suite à ça, j’ai voulu publier mon application. Mais les quatre caractères qui m’avaient logiquement posé problème à la saisie ne s’affichent désormais plus correctement (alors que dans le fichier SQL, ils sont bien présents et OK). J’ai naïvement pensé qu’en les reprenant depuis les sites où je les avais trouvés initialement et les réinsérais dans phpMyAdmin (comme je les avais insérés la première fois), l’affichage serait corrigé.
Déjà, dans phpMyAdmin, ils étaient affichés correctement. Quand j’ai tenté de les remplacer, les mises à jour ne se sont pas faites, donc la nouvelle valeur était la même que celle qui posait problème. J’ai donc tenté de remettre du texte ASCII, puis remettre les valeurs que j’avais trouvées, mais l’affichage dans l’application n’est toujours pas ce que j’ai sur ma machine locale.
J’ai évidemment supprimé les caches à la main, vérifié le jeu de caractères du fichier SQL, rien de ce à quoi je pense ne semble y faire.
Les versions de PHP et de MySQL sont les mêmes (PHP 7.1.15 et MySQL 5.7.9), comme de phpMyAdmin.
Est-ce que quelqu’un pourrait m’expliquer comment ça peut fonctionner sur ma machine et pas en distant, et ainsi me fournir une piste pour que je puisse utiliser ces caractères de manière "portable" ?
Merci d’avance