Donc pour compter le nombre d’octets, on va utiliser mb_strlen() en lui disant d’utiliser le code ASCII, pour qu’il compte un caractère par octet :
$chaine = 'héhé';
$taille = mb_strlen($chaine, 'ASCII'); // = 6
Donc comme ça les choses sont claires : dans tous les cas il faut utiliser mb_strlen(), et l’encodage passé en paramètre permet de connaître précisément l’intention du développeur :
UTF-8 pour compter les caractères
ASCII pour compter les octets
Comment passer à utf8mb4 proprement
Il s’agit purement et simplement d’un détournement de caractères. Donc, ce n’est pas aux logiciels de s’adapter à vos bêtises. C’est à vous d’arrêter de faire des bêtises.
« Il s’agit purement et simplement d’un détournement de caractères. Donc, ce n’est pas aux logiciels de s’adapter à vos bêtises. C’est à vous d’arrêter de faire des bêtises. »
NB : ceci s'applique logiquement aussi à l'écriture inclusive (nouveaux mots, graphie avec points médians…)
Comment passer une base MySQL en utf8mb4 pour supporter toutes les Emojs.
Méthode avec ligne de commande.
Un script PHP pour convertir une base de données de latin1 à utf8
Des explications des conséquences en termes de sécurité de l'usage de l'UTF8
سمَـَّوُوُحخ ̷̴̐خ ̷̴̐خ ̷̴̐خ امارتيخ ̷̴̐خ
Il paraît que cette chaine de caractère fait planter les Mac
Un outil sous Windows qui appelle un wrapper en PHP pour corriger une base MySQL où les accents sont mal encodés en utf-8
Dessinez une forme pour retrouver le caractère unicode correspondant !
Quand on part d’une vieille installation de SPIP il arrive qu’on enregistre les données en utf-8 dans des tables déclarées en latin1. Ca ne gêne pas le fonctionnement normal du site, mais ça empêche d’utiliser proprement les outils MySQL, de la ligne de commande (qui affiche des « é » à la place des « é ») au moteur de recherche FULLTEXT, qui ne retrouve pas les mots accentués. Méthode de nettoyage.
Convertir une base MySQL de latin1 à utf8. Pas si facile que ça !
Ca peut toujours servir !
Le site de la librairie PHP générant des fichiers PDF et supportant l'utf-8
Un cours sur l'UTF-8 assez exhaustif !
SELECT nom,prenom FROM personnes ORDER BY nom COLLATE latin1_general_ci
SELECT nom,prenom FROM personnes ORDER BY nom COLLATE latin1_general_ci
SELECT nom,prenom FROM personnes ORDER BY nom COLLATE latin1_general_ci