Supprimer les caractères non ASCII
Café devient Cafe, Straße devient Strasse et São Paulo devient Sao Paulo, tandis que les emoji, caractères CJK, symboles monétaires et guillemets typographiques sont supprimés. Un texte propre pour les anciens systèmes, exports CSV et serveurs de messagerie stricts. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Texte
- Hello, café 🎉!
- Résultat
- Hello, cafe !
- Longueur
- 13
- Longueur d'origine
- 15
- Supprimé
- 1
Les systèmes hérités, les protocoles série, les exportateurs CSV et les relais de courrier exigeants cassent encore lorsqu’un seul emoji, une guillemet typographique ou une lettre accentuée glisse dans un champ traité comme de l’ASCII sept bits. Cet outil de suppression des caractères non ASCII prend toute chaîne non vide, replie les accents latins vers leurs bases nues, puis efface tout caractère restant hors de la plage ASCII, afin que le résultat soit un texte sept bits propre. Emoji, CJK, signes monétaires et symboles typographiques disparaissent ; café devient cafe ; l’ASCII déjà nu est renvoyé inchangé.
Comment fonctionne la suppression des caractères non ASCII
Retirer le non-ASCII est un court pipeline déterministe, ni une conjecture de locale ni une réécriture par apprentissage automatique. D’abord le moteur applique la forme de normalisation Unicode D, qui sépare la lettre de base de ses marques diacritiques combinantes : é devient e plus un aigu combinant, ñ devient n plus un tilde combinant, et ü devient u plus un tréma combinant. Ensuite, toute marque combinante des plages habituelles est effacée, laissant les bases latines d’Europe occidentale et centrale et de nombreuses lettres vietnamiennes à tons.
Troisièmement, une table fixe de translittération réécrit les lettres qui survivent à NFD sans devenir ASCII : formes nordiques et islandaises telles que ø, æ, ð et þ ; l’eszett allemand ; ligatures françaises et latines œ ; lettres polonaises et slaves barrées comme ł et đ ; et quelques bases maltaises et vietnamiennes à corne. La table conserve la casse lorsque les deux cas existent, donc Æ devient AE et ß devient ss.
Quatrièmement, une seule passe ne conserve que les points de code de U+0000 à U+007F et jette le reste : emoji, CJK, cyrillique, arabe, signes monétaires, guillemets courbes, tirets cadratin et symboles restants. Lettres ASCII, chiffres, ponctuation, espaces, tabulations et sauts de ligne gardent leur ordre d’origine. L’algorithme indique combien de points non ASCII restants ont été effacés et si la chaîne a changé.
Les chaînes vides échouent à la validation avant toute transformation. Comme le chemin est du parse pur sur des chaînes, la latence reste sous la milliseconde pour les formulaires typiques et le modèle de coût publié est analytique, non fondé sur des jetons de modèle.
Ce que vous envoyez et ce que vous recevez
Envoyez un unique champ obligatoire nommé text contenant la chaîne non vide que vous souhaitez nettoyer en ASCII. Contrôles classiques : Café devient Cafe, naïve devient naive, São Paulo devient Sao Paulo, Straße devient Strasse, et une chaîne telle que Hello, café 🎉 devient Hello, cafe avec l’emoji disparu. Un ASCII déjà nu comme ABC-123 revient inchangé, changed est false et removed vaut zéro, utile comme détecteur de no-op dans des gardes ETL.
Le moteur ne compacte pas les espaces restants après un symbole effacé, ne change pas la casse et n’invente pas d’orthographes latines pour le cyrillique ou le CJK : ces écritures sont simplement supprimées. Telle est l’intention de cette page : de l’ASCII sept bits pour les systèmes hérités, pas un translittérateur complet.
Où cet outil intervient dans le travail réel
Les équipes d’exploitation collent des dumps de console, des fragments de ticket et des noms de fichiers fournisseurs qui ramassent emoji, guillemets typographiques ou signes monétaires depuis le chat et le courrier, puis ont besoin d’un champ qu’un mainframe, un terminal POS ou un saut SMTP sept bits acceptera.
Les ingénieurs de données qui nettoient des exports CRM et des chargements d’entrepôt forcent souvent les colonnes en texte libre vers l’ASCII avant de joindre sur des clés souples ou d’écrire des fichiers pour des outils qui supposent encore Latin-1, voire 7 bits. Éditeurs CMS et éditeurs de contenu nettoient des titres collés qui paraissent corrects à l’écran mais portent des tirets typographiques et des restes CJK qui cassent d’anciens consommateurs RSS ou des règles de nom de fichier.
Les équipes produit replient les noms affichés en replis ASCII lorsqu’un fournisseur en aval refuse tout ce qui sort de 0x00–0x7F, tout en voulant que José devienne Jose et non Js. Cette page n’est pas la même recherche que supprimer les accents du texte : cette sœur conserve emoji et CJK et ne replie que les diacritiques. Ce n’est pas non plus supprimer les caractères de contrôle, qui conserve l’Unicode imprimable et n’efface que les codes C0/C1.
Si vous avez ensuite besoin de slugs d’URL à traits d’union, d’un repli de casse ou d’une romanisation phonétique d’écritures non latines, traitez-les comme des pages distinctes. Gardez les requêtes sous le plafond de longueur documenté, figez la chaîne result dans les tests, et vous obtenez un ASCII reproductible sans monter votre propre bibliothèque d’encodage.
Cas d’usage
Assainir des champs pour systèmes hérités sept bits
Repliez les accents et retirez emoji, CJK et symboles typographiques afin qu’un mainframe, un POS et un SMTP acceptent la valeur en ASCII nu.
Nettoyer CSV, journaux et colonnes d’entrepôt
Forcez les colonnes en texte libre vers l’ASCII avant jointures, dépôts de fichiers et outils qui supposent encore Latin-1 ou 7 bits.
Questions fréquentes
Que fait la suppression des caractères non ASCII ?
Elle replie les accents latins en lettres nues, puis efface tout caractère restant hors de U+0000–U+007F — emoji, CJK, signes monétaires et symboles typographiques — pour un ASCII sept bits propre.
Quelle est la différence avec la suppression des accents ?
La suppression des accents conserve emoji, CJK et autres écritures non mappées et ne simplifie que les diacritiques. Cet outil efface aussi ces restes non ASCII pour que les systèmes hérités ne reçoivent que de l’ASCII.
Que deviennent emoji, CJK et guillemets typographiques ?
Ils sont effacés après le repli des accents. Une chaîne telle que Hello, café 🎉 devient Hello, cafe (l’emoji disparaît ; les espaces restants ne sont pas compactés).
Que se passe-t-il si j’envoie un texte vide ?
Les chaînes vides sont rejetées afin que les clients détectent un champ manquant au lieu de recevoir un résultat vide silencieux.
Quel est le tarif ?
L’outil du navigateur est gratuit et s’exécute en local.
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/str/remove-non-ascii \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Café 🎉 — São Paulo"}'const res = await fetch("https://api.kit.forhosting.com/str/remove-non-ascii", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Café 🎉 — São Paulo"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/remove-non-ascii",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Café 🎉 — São Paulo"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/remove-non-ascii", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Café 🎉 — São Paulo"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Café 🎉 — São Paulo"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/remove-non-ascii", 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": "Café 🎉 — São Paulo"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.remove_non_ascii",
"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.
Limites
max_chars | 100000 |
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
Une entrée vide est rejetée avec invalid_input au lieu d’un succès blanc silencieux. Les appels API réussis coûtent $0.002 par élément ; les échecs de validation ne sont pas facturés.
Comment fonctionne la suppression des caractères non ASCII
Il n’y a ni paramètre de locale, ni échantillonnage aléatoire, ni horloge : la même entrée produit toujours le même JSON. Les charges extrêmement longues au-dessus du plafond documenté échouent aussi avec invalid_input afin qu’une seule requête ne monopolise pas la mémoire du Worker.
Ce que vous envoyez et ce que vous recevez
Des alias tels que input, value, data, s, message, string, content et body sont acceptés pour brancher d’anciens clients ou des colonnes de tableur. Nombres et booléens sont convertis en forme décimale ou true/false ; objets, tableaux, NaN et Infinity sont rejetés avec invalid_input. En cas de succès, la réponse répète le text d’origine, le result uniquement ASCII, la length du résultat, original_length, un compteur removed des points non ASCII restants supprimés après le repli des accents, un booléen changed et operation égal à remove_non_ascii. Utilisez le formulaire gratuit du navigateur pour coller et copier, puis appelez le même contrat depuis des scripts lorsque vous assainissez des lignes de journal, des colonnes CSV ou des charges API. Le tarif des appels API réussis est la base publiée de $0.002 par élément ; les échecs de validation, y compris un text vide, ne consomment pas le solde prépayé.
Où cet outil intervient dans le travail réel
Comme cette capacité est un moteur de parse pur, le tarif API est la base publiée de $0.002 par élément réussi et une validation échouée ne consomme pas le solde.
Cas d'intégration
Fixtures déterministes et hygiène de collage CMS
Obtenez le même résultat ASCII dans le navigateur et l’API pour tests golden, noms de fichiers et titres collés depuis le chat.