Compteur de graphèmes
Comptez les caractères qu'une personne voit dans un texte, appelés graphèmes, avec ses points de code et ses unités UTF-16 : abc donne 3, 3 et 3. Les chiffres divergent avec les lettres accentuées et les emojis faits de plusieurs pièces. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Texte
- abc
- Graphèmes
- 3
- Points de code
- 3
- Unités UTF-16
- 3
Comptez les caractères perçus par l'utilisateur (clusters de graphèmes étendus) dans un texte Unicode. Intention de recherche : comptage de graphèmes / comptage de caractères unicode. Aucun appel réseau, aucune graine aléatoire ni état serveur n'est requis pour une réponse correcte.
Fonctionnement
Comptez les caractères perçus par l'utilisateur (clusters de graphèmes étendus) dans un texte Unicode. Les graphèmes utilisent Intl.Segmenter lorsqu'il est disponible ; les points de code et les unités UTF-16 sont également indiqués. L'implémentation est du JavaScript pur, sans services externes.
Aucun appel réseau, aucune graine aléatoire ni état serveur n'est requis pour une réponse correcte. Les tâches en échec ne sont pas facturées. Les landings ciblent l'intention de recherche déclarée avec des mots-clés précis.
Préférez des unités et des plages explicites à la coercition silencieuse de mauvais types. Lorsqu'un champ est facultatif, les valeurs par défaut sont documentées dans params et reprises dans la
Entrées, limites et arrondi
Les décimales facultatives utilisent half-up une seule fois. Les sorties répètent les entrées clés pour que l'automatisation journalise le contexte complet de chaque appel. Aucun appel réseau, aucune graine aléatoire ni état serveur n'est requis pour une réponse correcte.
Les tâches en échec ne sont pas facturées. Les landings ciblent l'intention de recherche déclarée avec des mots-clés précis. Préférez des unités et des plages explicites à la coercition silencieuse de mauvais types.
Lorsque
Quand l'utiliser
Utilisez-la lorsque votre intention de recherche correspond au nom de la calculatrice et que vous avez besoin d'une réponse reproductible pour l'enseignement, les opérations financières, le GIS, les outils textuels ou l'historique des unités. Comptez les caractères perçus par l'utilisateur (clusters de graphèmes étendus) dans un texte Unicode. Aucun appel réseau, aucune graine aléatoire ni état serveur n'est requis pour une réponse correcte.
Les tâches en échec ne sont pas facturées. Les landings ciblent l'intention de recherche déclarée avec des mots-clés précis. Préférez des unités et des plages explicites à la coercition silencieuse de mauvais types.
Lorsqu'un champ est facultatif, les valeurs par défaut sont documentées dans
Questions fréquentes
Appelle-t-il le réseau ?
Non. Tous les calculs et transformations de texte sont locaux et déterministes.
Qui en est l'auteur ?
Aspire (elon@forhosting.com), livraison EN seule ; Nitro hydrate les locales.
Qu'est-ce qu'un graphème ?
C'est ce qu'un lecteur perçoit comme un seul caractère. Son nom technique est grappe de graphèmes étendue : une lettre avec son accent ou un emoji composé de plusieurs pièces compte pour un graphème, même s'il est stocké en plusieurs parties.
Pourquoi trois chiffres différents ?
Parce que chacun répond à une question différente. Les graphèmes sont les caractères qu'une personne voit, les points de code sont les unités Unicode sous-jacentes et les unités UTF-16 sont les morceaux que comptent de nombreux programmes pour mesurer un texte.
Quel chiffre retenir pour une limite de longueur ?
Les graphèmes, quand la limite vise des personnes, comme un nom affiché ou une courte légende, car ils correspondent à ce que l'on perçoit. Si c'est un programme qui applique la limite, comparez avec le chiffre qu'il utilise réellement.
Outils associés
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/text/grapheme-count \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"👨👩👧👦"}'const res = await fetch("https://api.kit.forhosting.com/text/grapheme-count", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "👨👩👧👦"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/text/grapheme-count",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "👨👩👧👦"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/text/grapheme-count", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"👨👩👧👦"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"👨👩👧👦"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/text/grapheme-count", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"text": "👨👩👧👦"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "text.grapheme_count",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
Notes techniques
La calculatrice est gratuite dans le navigateur, déterministe et identique sur le chemin API. Les entrées sont validées avant toute arithmétique afin que les charges invalides échouent avec invalid_input. L'arrondi half-up est appliqué une seule fois à partir des résultats IEEE bruts lorsque des décimales sont demandées. Utilisez le même contrat JSON depuis des tableurs, CMS
Fonctionnement
La calculatrice est gratuite dans le navigateur, déterministe et identique sur le chemin API. Les entrées sont validées avant toute arithmétique afin que les charges invalides échouent avec invalid_input. L'arrondi half-up est appliqué une seule fois à partir des résultats IEEE bruts lorsque des décimales sont demandées. Utilisez le même contrat JSON depuis des tableurs, des hooks CMS, l'automatisation ou des démos pédagogiques.
Entrées, limites et arrondi
Fournissez les paramètres obligatoires sous forme de nombres ou de chaînes JSON comme documenté. Types invalides, champs obligatoires manquants ou valeurs hors plage lèvent invalid_input avec un message clair. La calculatrice est gratuite dans le navigateur, déterministe et identique sur le chemin API. Les entrées sont validées avant toute arithmétique afin que les charges invalides échouent avec invalid_input. L'arrondi half-up est appliqué une seule fois à partir des résultats IEEE bruts lorsque des décimales sont demandées. Utilisez le même contrat JSON depuis des tableurs, des hooks CMS, l'automatisation ou des démos pédagogiques.
Quand l'utiliser
La calculatrice est gratuite dans le navigateur, déterministe et identique sur le chemin API. Les entrées sont validées avant toute arithmétique afin que les charges invalides échouent avec invalid_input. L'arrondi half-up est appliqué une seule fois à partir des résultats IEEE bruts lorsque des décimales sont demandées. Utilisez le même contrat JSON depuis des tableurs, des hooks CMS, l'automatisation ou des démos pédagogiques.
Cas d'intégration
Vérification rapide
Collez des valeurs dans le widget gratuit et comparez avec un tableur.
Automatisation
Appelez l'API avec le même contrat JSON depuis n8n, des scripts ou un CMS.
Enseignement
Montrez la formule et les exemples golden figés sans logiciel propriétaire.
Questions techniques
Est-ce gratuit dans le navigateur ?
Oui. Le tier A s'exécute entièrement côté client avec le même noyau que l'API.
Que se passe-t-il en cas d'entrée incorrecte ?
Le gestionnaire lève invalid_input ; les tâches en échec ne sont pas facturées.
Puis-je l'utiliser via l'API ?
Oui. Envoyez les mêmes champs JSON documentés dans params.