Skip to content
Extraits de code Groupes Projets
Bifurcation depuis spip / spip
Le projet source a une visibilité limitée.
  • Fil's avatar
    e5d06f53
    gestion des emoji avec MySQL · e5d06f53
    Fil a rédigé
    ================
    
    le charset 'utf8' de MySQL ne contient pas l'ensemble de l'UTF-8, mais seulement les caractères codés sur 1, 2, ou 3 bytes; pour contourner ce problème, on pourrait adopter le charset 'utf8mb4', mais c'est difficile à faire, et ça implique de revoir la structure de la base (notamment les VARCHAR 255 ne passent plus, car 255*4 > 1000)
    
    la solution adoptée ici est d'échapper les caractères de 4 bytes sous leur forme unicode 💩 ; on le fait au niveau de req/mysql car ce problème touche mysql seulement
    
    pour activer ce fonctionnement, il faut pour l'instant ajouter dans mes_options la ligne suivante :   define('_MYSQL_NOPLANES', true);
    
    au passage mes tests sur l'emoji on révélé deux bugs dans inc/charsets, corrigés ici
    
    références : http://seenthis.net/messages/350136
    e5d06f53
    Historique
    gestion des emoji avec MySQL
    Fil a rédigé
    ================
    
    le charset 'utf8' de MySQL ne contient pas l'ensemble de l'UTF-8, mais seulement les caractères codés sur 1, 2, ou 3 bytes; pour contourner ce problème, on pourrait adopter le charset 'utf8mb4', mais c'est difficile à faire, et ça implique de revoir la structure de la base (notamment les VARCHAR 255 ne passent plus, car 255*4 > 1000)
    
    la solution adoptée ici est d'échapper les caractères de 4 bytes sous leur forme unicode 💩 ; on le fait au niveau de req/mysql car ce problème touche mysql seulement
    
    pour activer ce fonctionnement, il faut pour l'instant ajouter dans mes_options la ligne suivante :   define('_MYSQL_NOPLANES', true);
    
    au passage mes tests sur l'emoji on révélé deux bugs dans inc/charsets, corrigés ici
    
    références : http://seenthis.net/messages/350136