Supprimer caractères de contrôle
Supprimez les caractères de contrôle invisibles cachés dans un texte collé : Hello, un octet nul, World, une sonnerie et un point d'exclamation deviennent HelloWorld!, avec 2 caractères retirés. Espaces, tabulations et sauts de ligne sont conservés. 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 World!
- Texte
- HelloWorld!
- Original
- Hello World!
- Longueur
- 11
- Supprimé
- 2
Cet outil de suppression des caractères de contrôle prend toute chaîne de texte non vide et renvoie le même contenu sans les caractères de contrôle non imprimables. Les espaces ordinaires, les tabulations et les sauts de ligne restent en place, de sorte que la structure des paragraphes et l’espacement lisible survivent au nettoyage. Le moteur est entièrement déterministe : un seul passage fixe de suppression par plages Unicode, sans appels réseau, sans aléatoire et sans dépendance à l’horloge. Lettres, chiffres, ponctuation et symboles Unicode imprimables conservent leur ordre relatif ; seuls disparaissent les contrôles C0 invisibles (sauf tabulation, LF et CR), le caractère DEL et les contrôles C1.
Ce que signifie supprimer les caractères de contrôle et ce que contient la réponse
Supprimer les caractères de contrôle dans cette capacité signifie effacer des points de code qui ne s’impriment pas et qui cassent souvent les analyseurs, journaux, bases de données et flux copier-coller. Le moteur retire le bloc de contrôle C0 à l’exception des trois contrôles d’espacement que l’on souhaite presque toujours conserver : tabulation horizontale (U+0009), saut de ligne (U+000A) et retour chariot (U+000D). Il retire aussi DEL (U+007F) et tout le bloc de contrôle C1 (U+0080 à U+009F).
L’espace ordinaire (U+0020) n’est jamais supprimé. Hello suivi d’un octet nul et de World devient HelloWorld ; une note sur deux lignes avec un caractère bell entre les mots conserve son saut de ligne et ne perd que le bell. Il n’y a pas d’option pour retirer aussi les espaces, aucun mode qui compacte les suites d’espaces, et aucune coercition silencieuse de null en succès vide.
Où le nettoyage des caractères de contrôle s’inscrit dans l’hygiène des données, l’édition et le logiciel
Les étudiants rencontrent le nettoyage des caractères de contrôle lorsqu’un laboratoire de programmation importe des échantillons CSV ou de journaux contenant des octets nuls, des form feeds ou des séquences d’échappement issues de dumps de terminal. Les enseignants peuvent pré-générer des clés de réponse montrant la forme propre attendue sans se fier à des macros bureautiques opaques qui réécrivent les fins de ligne différemment sur chaque machine.
Les ingénieurs de données utilisent le même contrat pour assainir des champs avant de charger entrepôts, index de recherche ou files de messages qui rejettent ou tronquent silencieusement un NUL embarqué. Les équipes support et opérations collent des fragments de tickets multi-lignes bruyants issus de consoles série, d’exports SCADA ou de téléchargements de mainframes hérités et ont besoin de texte lisible sans codes invisibles qui cassent les systèmes de tickets.
Éditeurs CMS et publicateurs nettoient un contenu collé qui paraît correct à l’écran mais transporte des octets C1 d’anciens encodages, évitant flux cassés et tris étranges. Associez-la aux outils de suppression d’espaces, de retrait d’accents ou de sanitisation HTML lorsque vous construisez un petit laboratoire d’aides texte gratuites et déterministes pour formulaires, préparation CMS et hygiène des données.
Cas d’usage
Nettoyer des imports contaminés par du binaire
Retirez octets nuls, bell et autres contrôles C0/C1 de CSV, journaux ou exports copiés de systèmes binaires ou hérités, en conservant espaces et sauts de ligne lisibles.
Hygiène de collage tickets et CMS
Éliminez les codes de contrôle invisibles des dumps de console et collages d’anciens éditeurs pour que tickets, recherche et systèmes de contenu acceptent le texte proprement.
Questions fréquentes
Combien coûte l’outil de suppression des caractères de contrôle ?
Il est gratuit dans votre navigateur sur cette page.
Quels caractères sont supprimés ?
Contrôles C0 sauf tabulation, saut de ligne et retour chariot ; DEL (U+007F) ; et contrôles C1 (U+0080–U+009F). Espaces et texte imprimable sont conservés.
Les espaces et sauts de ligne sont-ils préservés ?
Oui. Espace ordinaire, tabulation, LF et CR ne sont jamais supprimés. Seuls les caractères de contrôle non imprimables hors de cet ensemble sont retirés.
Que se passe-t-il si le champ text est vide ?
Vous devez fournir une chaîne non vide ; les champs de formulaire vides ne deviennent pas des succès silencieux.
Le résultat est-il le même à chaque fois ?
Oui. La transformation est une suppression de caractères pure et déterministe, sans réseau, aléatoire ni dépendance à l’horloge, donc une entrée identique produit toujours la même sortie.
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-control-chars \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello\u0000World\u0007 — line two"}'const res = await fetch("https://api.kit.forhosting.com/str/remove-control-chars", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hello\u0000World\u0007 — line two"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/remove-control-chars",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hello\u0000World\u0007 — line two"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/remove-control-chars", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hello\\u0000World\\u0007 — line two"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hello\u0000World\u0007 — line two"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/remove-control-chars", 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": "Hello\u0000World\u0007 — line two"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.remove_control_chars",
"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 une erreur claire invalid_input afin qu’un champ de formulaire vide ne devienne pas un succès vide silencieux. Utilisez-le gratuitement dans le navigateur lorsque vous collez des exports bruyants de systèmes hérités, des journaux série ou des fichiers contaminés par du binaire, ou appelez l’API à $0.002 par requête réussie lorsque vous avez besoin d’un nettoyage reproductible en CI, pipelines ETL ou démonstrations pédagogiques.
Ce que signifie supprimer les caractères de contrôle et ce que contient la réponse
La réponse est volontairement petite et stable : text contient le résultat nettoyé que vous copierez ou stockerez, original reprend l’entrée exacte pour auditer ce qui a changé, length indique le nombre de caractères du résultat, removed compte combien de caractères de contrôle ont disparu (longueur d’origine moins longueur du résultat), et method est l’étiquette fixe remove_control_chars pour les journaux et les pipelines multi-outils. Le moteur construit une chaîne nettoyée complète dans la longueur prise en charge ou rejette la requête avec invalid_input. Les cas rejetés incluent un champ text manquant, une valeur null, une chaîne vide, des objets et tableaux qui ne sont pas du texte brut, et toute charge utile plus longue que le nombre maximal de caractères documenté. Si vous avez besoin d’une suppression totale des espaces, d’un retrait d’accents, d’une sanitisation HTML ou d’une minification JSON, utilisez ces outils dédiés ; cette page ne traite que le nettoyage des contrôles non imprimables avec une sortie stable adaptée aux feuilles de calcul, tests unitaires et consommateurs d’API qui ne doivent pas inventer de règles de classes de contrôle.
Comment le champ text est lu et comment le résultat reste reproductible
La valeur doit être une chaîne non vide ; les nombres finis et les bigints sont d’abord convertis en chaîne, ainsi un code produit saisi comme nombre se traite proprement après conversion en chiffres décimaux. La conversion utilise un seul remplacement par expression régulière qui ne cible que les plages de contrôle documentées — sans tables de locale, sans modèle d’apprentissage automatique et sans exceptions dépendantes de la date. Le champ préféré est text, mais les alias input, string, value, content et s sont acceptés afin que chaînes de requête, tableurs et formulaires typés réutilisent le même contrat sans renommer les colonnes. Booléens, objets simples et tableaux sont rejetés avec un message clair pour qu’un corps JSON erroné ne devienne pas le mot true ni un dump d’objet inutile. Une chaîne vide est toujours invalid_input : la promesse du produit est de transformer du texte, pas d’inventer un succès vide à partir d’un champ manquant. La longueur est plafonnée à cent mille caractères pour qu’un collage incontrôlé ne monopolise pas un Worker ; les charges plus longues échouent avec un message de limite explicite plutôt qu’une coupure silencieuse. Associez l’exécution gratuite dans le navigateur de cette page à l’API payante lorsque vous avez besoin de la même chaîne nettoyée dans un pipeline automatisé sans livrer vos propres aides de suppression de contrôles.
Où le nettoyage des caractères de contrôle s’inscrit dans l’hygiène des données, l’édition et le logiciel
Sur cette page le travail s’exécute entièrement dans votre navigateur ; via l’API chaque conversion réussie coûte $0.002, une validation échouée n’est pas facturée et rien n’est stocké après la réponse. Cette division — exploration interactive gratuite et API payante identique — correspond au reste du catalogue KIT de niveau A et vous permet de passer d’une démo de cours à un pipeline automatisé sans changer le résultat de la chaîne.
Cas d'intégration
Fixtures déterministes de pipeline
Générez des chaînes reproductibles sans contrôles pour tests unitaires, fichiers golden et assertions CI sur la logique d’ingestion et d’assainissement.