La RFC 8259 n'impose l'échappement que de trois choses dans une chaîne JSON. Tout le reste est facultatif. Celle qui casse réellement les chaînes de traitement est le demi-surrogate isolé : légal dans un texte JSON, impossible en UTF-8, et remplacé en silence dès que tes données sont écrites.
La plus petite chose qui soit encore un tableau tient en deux lignes : une ligne d'en-tête et une ligne de séparation. Voici pourquoi la seconde est obligatoire en GitHub Flavored Markdown, où les tableaux à barres n'existent pas du tout, et ce qu'un générateur fait que la saisie manuelle ne peut pas faire.
Un tableau Markdown n'interdit que deux caractères dans une cellule : la barre verticale et le saut de ligne. Voici ce que fait chacun, comment un convertisseur les traite, pourquoi l'échappement doit être appliqué dans le bon ordre, et pourquoi l'alignement du source ne compte jamais.
Pourquoi la langue du lecteur décide du délimiteur, ce que le convertisseur fait aux guillemets quand tu changes, ce qu'est réellement la première ligne sep=, et le nombre de cellules citées sur le même export écrit de cinq façons.
Ce qu'il advient de la ligne d'en-tête, des lignes de longueurs inégales, des types — et la seule chose pour laquelle on confond régulièrement la transposition et qu'elle ne sait pas faire.
Deux documents qui ne diffèrent que par le nombre d'enfants produisent deux formes JSON différentes, et aucun convertisseur ne peut les distinguer sans schéma. Plus ce que celui-ci fait réellement des attributs, du contenu mixte et des espaces — et la seule chose qu'il ne sait toujours pas consigner.
Délimiteurs entre guillemets, sauts de ligne intégrés, types ambigus, en-têtes en double et encodage. Chaque cas a été passé dans le convertisseur et la sortie exacte est reproduite ici — y compris les deux qu'il ne rattrape pas.
Les deux mêmes commandes ressortent sur cinq colonnes d'un convertisseur et dix d'un autre, et aucun n'a tort. Chemins pointés, tableaux de scalaires, tableaux d'objets et enregistrements aux clés différentes : quatre décisions, prises à ta place, le plus souvent en silence.
Retirer des balises et assainir du HTML sont deux métiers différents. Un fragment réel passé dans une regex naïve puis dans un nettoyeur conscient de la mise en forme, avec le contenu des script et style, les coupures de blocs, les commentaires, les CDATA et l'ordre des entités montrés en sortie.
Le dernier recours quand plus rien ne peut être compressé. Cela fonctionne, avec trois arêtes vives : les morceaux ne servent à rien seuls, l'ordre est absolu, et le mégaoctet que tu régles n'est pas celui de la limite.
Le texte brut n'a pas de mise en page : tout convertisseur doit donc en inventer une pour toi. Voici exactement les décisions que prend celui-ci — page, marges, police, retours à la ligne — ce qu'il fait d'une tabulation et d'une longue ligne, et ce qu'il te reste à ajouter pour qu'une note mérite d'être conservée.
Trois pannes totalement différentes se cachent derrière la même phrase. L'une est l'encodage, l'autre le séparateur, la troisième Excel qui devine des types en ouvrant le fichier — et le remède diffère pour chacune. Voici comment les distinguer en cinq secondes.
Ce petit clic à l'endroit du montage n'est pas un défaut du logiciel. C'est une marche dans la forme d'onde, et une marche est de l'énergie large bande — soit la définition même d'un clic. Voici l'arithmétique, mesurée, et les deux endroits où poser une coupe pour qu'il ne se produise jamais.
Replier les diacritiques est une étape de normalisation, et une normalisation ne fonctionne que si la même fonction s'applique à l'index et à la requête. NFC contre NFD avec les points de code affichés, et les lettres — ø, ł, ß, œ, ı — qui sortent du repli intactes.
Retirer les balises avant de décoder les entités, couper les espaces avant de dédupliquer, écraser les blancs en dernier. Trois ordres exécutés dans Node, un pipeline de neuf étapes dans le bon sens, et les caractères invisibles — U+00A0, U+200B, U+FEFF — qui survivent à tout nettoyage naïf.
L'un de ces formats stocke les échantillons, un autre les mêmes échantillons compressés, le troisième une supposition sur ce que tu aurais entendu. Quelles conversions entre eux sont gratuites, lesquelles sont seulement coûteuses, et lesquelles sont des portes à sens unique — avec l'arithmétique de chacune.
La bande-son de ta vidéo est déjà passée une fois par un encodeur avec perte. Que l'extraction t'en coûte une seconde dépend entièrement du bouton choisi parmi les trois — et « extraire en MP3 », celui vers lequel tout le monde se tourne, est celui qui coûte.
L'encodage par pourcentage se décide composant par composant, et c'est de là que vient toute la confusion. Une barre oblique est légale dans un chemin et doit être échappée dans une valeur de requête ; une espace est %20 dans un chemin et peut être + dans un corps de formulaire. Voici les ensembles exacts de la RFC 3986, les trois fonctions JavaScript qui divergent, et les pièges.
Un GIF n'a pas de vraie compression vidéo : chaque image est une image entière, plafonnée à 256 couleurs. Cela donne une arithmétique que tu peux faire de tête — largeur fois hauteur fois nombre d'images — et trois leviers à tirer quand la fenêtre d'envoi dit que le fichier est trop lourd.
L'entropie mesure le processus qui a produit un mot de passe, pas les caractères qui le composent. H = L x log2(R) n'est vrai que si chaque caractère a été tiré au hasard — c'est précisément pourquoi un indicateur qui note un mot de passe inventé par un humain sur ses classes de caractères mesure la mauvaise chose.
Un JWT est signé, pas chiffré. Quiconque détient le jeton peut décoder la charge utile et lire chaque revendication. Voici un vrai jeton, décodé sans aucune clé, plus les trois attaques que la signature est censée arrêter et le seul problème qu'elle ne peut pas résoudre.
Passer du 1080p au 720p ne divise pas l'image par deux : cela retire 56 % des pixels, et nettement moins que cela du fichier. Voici l'échelle avec les vrais comptes de pixels, des débits honnêtes et le poids de trois minutes à chaque palier — plus la raison pour laquelle une source à faible débit ne rétrécit presque pas.
Les conventions ne relèvent pas du goût. Le trait d'union est l'opérateur moins : kebab-case ne peut donc pas être un identifiant dans la plupart des langages - et c'est précisément pourquoi CSS et les URL l'utilisent. Avec en prime l'aller-retour sur les acronymes qui corrompt les noms en silence, et la règle qui le corrige.
Le curseur de qualité ne sait pas viser une taille de fichier — ce n'est pas son rôle. Mais la limite et la durée de ton plan fixent déjà le débit auquel tu as droit, et une division te dit si la résolution que tu utilises peut seulement tenir.