Aller au contenu
jsonbeautifiers
Français
Python Vérifié en exécutant l’analyseur sur CPython 3.14.3.

Invalid control character at: line L column C (char N)

Une chaîne contient un caractère littéral sous U+0020, en général un vrai saut de ligne ou une tabulation. JSON exige qu’ils soient échappés. Python propose une option strict=False qui les accepte, mais le document obtenu reste invalide pour tous les autres consommateurs.

Collez votre JSON et voyez exactement où il casse

Entrée

Rien de ce que vous collez ne quitte votre navigateur. La liste d’autorisation connect-src en fait une garantie du navigateur plutôt qu’une promesse. Vérifiez-le vous-même

Ce qui le provoque réellement

Classés selon la fréquence à laquelle chacun se révèle être la réponse.

  1. 01 Du texte multiligne dans une chaîne

    Extraits de journaux, SQL, traces de pile et HTML de gabarits comportent tous de vrais sauts de ligne.

    Casse

    json.loads('{"sql": "SELECT *
    FROM t"}')

    Fonctionne

    json.loads('{"sql": "SELECT *\\nFROM t"}')
  2. 02 Du JSON assemblé avec des f-strings ou par concaténation

    Les valeurs interpolées ne sont pas échappées. Construisez un dict et utilisez json.dumps, qui échappe tout correctement.

    Casse

    body = f'{{"note": "{note}"}}'

    Fonctionne

    body = json.dumps({"note": note})
  3. 03 Une tabulation copiée depuis un tableur

    Invisible, et elle survit intacte au copier-coller.

La même erreur dans d’autres environnements

Le problème de fond est identique ; seule la formulation change. Si un collègue signale l’un de ces messages, il regarde exactement la même chose que vous.

JavaScript (V8) Bad control character in string literal in JSON at position 11 (line 1 column 12)

Questions fréquentes

Que fait strict=False ?
json.loads(s, strict=False) autorise les caractères de contrôle dans les chaînes. Cela vous débloque, mais le document reste du JSON invalide : tout ce qui, en aval, n’est pas Python le rejettera encore. Corrigez plutôt le producteur.

Corrigez-le maintenant

Collez le payload dans l’outil ci-dessus, ou allez directement à celui conçu pour ce travail.

Échapper la chaîne correctement