Intermédiaire 8 min de lecture 25 janvier 2025

Middle dot : usages, pièges et compatibilité typographique

Un simple point centré peut changer le sens d’une chaîne, casser une regex ou dégrader un slug. Le middle dot (·, U+00B7) est courant en rédaction inclusive, en catalan (l·l) et dans diverses notations. Voici comment le reconnaître, l’utiliser correctement et éviter les écueils lorsqu’il s’invite dans vos textes ou vos données.

Qu'est-ce que le middle dot (·) ?

C’est un point centré utilisé en typographie et en linguistique. Visuellement proche d’autres signes, il peut être confondu ou remplacé par erreur.

Les familles de caractères à connaître autour du middle dot :

1 Ponctuation ASCII et signes familiers

Points, tirets et symboles souvent confondus avec un point médian.

. (U+002E), - (U+002D), • (U+2022), · (U+00B7)

2 Variantes et homoglyphes Unicode

Plusieurs caractères ressemblent à un point médian mais n’ont pas la même valeur.

· (U+00B7), ・ (U+30FB), ⋅ (U+22C5), ∙ (U+2219), ‧ (U+2027)

3 Usages typographiques et linguistiques

Cas d’usage fréquents en contenu éditorial et technique :

Rédaction inclusive : étudiant·e·s
Catalan : l·l (geminée)
Listes ou séparateurs légers
Maths/notation : point médian vs opérateur

4 Signes proches à ne pas confondre

Ressemblances trompeuses et impacts techniques :

• (U+2022) - Puce/bullet, pas un point médian
⋅ (U+22C5) - Dot operator mathématique
∙ (U+2219) - Bullet operator
・ (U+30FB) - Katakana middle dot

Problèmes classiques

Copier-coller depuis le web ou Word

Introduit un · (U+00B7) ou un ・ (U+30FB) là où un point ou un tiret était attendu.

Tests unitaires qui échouent

Une chaîne contient un U+00B7 qui rend la comparaison différente d’un point classique.

replace() ou slugify() incomplets

Ne traitent que le point (.) et ignorent ·, ⋅, ∙, ‧ et ・.

Regex sur le point ou les séparateurs

split("\\.") ne scinde pas les textes qui utilisent · ; les classes Unicode doivent être explicites.

Exemple de différence invisible au premier coup d'œil :

# Deux chaînes proches mais différentes
string1 = "a.b"
string2 = "a·b" # Contient U+00B7 (middle dot)
assert string1 == string2 # ❌ Échec

Symptômes qui doivent vous alerter

🚨 Signaux d'alarme

!
Un diff git montre des remplacements de points par des caractères similaires
!
split(".") ne fonctionne pas : les éléments restent collés autour de ·
!
Un slug ou une URL contient un caractère inattendu et échoue au routing
!
Votre éditeur montre un point centré différent selon les polices
!
Un copier-coller dans un terminal crée un argument supplémentaire en séparant sur ·

Comment les détecter

Solution recommandée : Clean ASCII

Clean ASCII met en évidence le middle dot et toutes ses variantes proches. Vous voyez instantanément où se trouvent ·, ・, ⋅, ∙ et ‧, avec leurs positions et codes.

✅ Détection automatique

Middle dot (·), Katakana middle dot (・), dot/bullet operators

📊 Analyse complète

Codes Unicode, emplacements, différence avec le point classique

🧹 Nettoyage automatique

Standardisation vers la forme voulue (·, ., - ou suppression)

💾 Export propre

Téléchargement des textes harmonisés prêts à publier

Autres méthodes de détection

Affichage dans l'éditeur

Activez l’affichage des caractères invisibles et des symboles similaires au point
Installez un linter qui signale ·, ・, ⋅, ∙, ‧ hors des zones autorisées

En ligne de commande (Unix)

# Chercher middle dot et proches (GNU grep PCRE)
grep -P -n "[\x{00B7}\x{30FB}\x{22C5}\x{2219}\x{2027}]" fichier.txt
# Afficher les codes hexadécimaux
hexdump -C fichier.txt | grep -E "c2 b7|e3 83 bb|e2 8b 85|e2 88 99|e2 80 a7"
# Visualiser les caractères non ASCII
LC_ALL=C sed -n 'l' fichier.txt

En code

JavaScript

const re = /[\u00B7\u30FB\u22C5\u2219\u2027]/g; const normalized = str.replace(re, ".")

Python

targets = {0x00B7, 0x30FB, 0x22C5, 0x2219, 0x2027}
codes = [f"{ord(c):04x}" for c in s if ord(c) in targets]

Excel / Google Sheets

SUBSTITUE(cellule;CAR(183);"." ) # 183 = U+00B7

Nettoyer et prévenir

🚀 Solution rapide avec Clean ASCII

Pour des textes cohérents, utilisez Clean ASCII afin d’identifier et standardiser les middle dots selon votre règle éditoriale.

Détection des variantes
Remplacement contrôlé (· → . ou autre)
Export immédiat

Méthodes techniques avancées

🔧 Normaliser

Choisissez une forme unique : conserver · (U+00B7) ou convertir en . ou -
Remplacez ・, ⋅, ∙, ‧ par la forme retenue, en tenant compte du contexte
Définissez les règles d’espacement et de césure autour du point médian

🧹 Filtrer

Écrivez une fonction sanitize_middle_dot() qui harmonise ces signes
Remplacez le middle dot par un séparateur lisible selon le contexte (. / - / espace)
Bloquez les variantes non prévues dans les formulaires et imports

⚙️ Automatiser

Hooks pre-commit qui signalent · et variantes hors des fichiers autorisés
Tests de sanitation sur les slugs, URLs et identifiants
Linting CI pour repérer les homoglyphes problématiques

Checklist rapide

Charte éditoriale précisant quand utiliser le middle dot
Fonctions de normalisation qui unifient · et ses variantes
Linter/CI détectant les homoglyphes (・ ⋅ ∙ ‧)
Regex et parsers tests couvrant le middle dot
Règles de sanitation des slugs/URLs pour éviter les surprises
Documentation développeurs sur les caractères proches du point

Conclusion

Le middle dot est utile et lisible, mais sa proximité visuelle avec d’autres signes peut introduire des divergences difficiles à repérer.

Adoptez une politique claire, standardisez les formes et automatisez la détection : vous éviterez la majorité des erreurs liées aux points médians.

Détectez les middle dots maintenant

Utilisez notre outil pour identifier et harmoniser les points médian et signes équivalents dans vos textes.

Analyser mon texte