Cette réponse s'est affichée en haut de mes résultats de recherche Google, mais n'était pas correcte :
La confusion est probablement due aux différentes versions de mysql testées.
- La version 4 compte les octets
- La version 5 compte les caractères
http://dev.mysql.com/doc /refman/5.0/en/string-type-overview.html
MySQL interprète les spécifications de longueur dans les définitions de colonnes de caractères en unités de caractères. (Avant MySQL 4.1, les longueurs de colonne étaient interprétées en octets.) Cela s'applique aux types CHAR, VARCHAR et TEXT.
Fait intéressant (je n'y avais pas pensé), la longueur maximale d'une colonne varchar est affectée par utf8 comme suit :
La longueur maximale effective d'un VARCHAR dans MySQL 5.0.3 et versions ultérieures est soumise à la taille de ligne maximale (65 535 octets, qui est partagée entre toutes les colonnes) et au jeu de caractères utilisé. Par exemple, les caractères utf8 peuvent nécessiter jusqu'à trois octets par caractère, de sorte qu'une colonne VARCHAR qui utilise le jeu de caractères utf8 peut être déclarée avec un maximum de 21 844 caractères.