La première fois qu'ASCII m'importait vraiment, je déboguais une importation CSV pour un plugin WordPress qui ne cessait de diviser l'adresse d'un client et n°39 ; s en deux lignes Le fichier avait l'air bien dans chaque éditeur dans lequel je l'ouvrais Il s'est avéré qu'une exportation avait utilisé un retour chariot nu (code 13) comme une ligne se terminant alors que mon analyseur s'attendait à un flux de ligne (code 10), et un séparateur d'enregistrement parasite (code 30) s'était glissé à partir d'une exportation mainframe en amont Aucun de ces caractères n'imprimer quoi que vous ne puissiez les voir. Vous ne pouvez les voir. Vous ne pouvez les voir que si vous avez un tableau qui transformez un nombre invisible en un nom - pourquoi est exactement Tableau ASCII sur Toolz.dev et pourquoi je le garde épinglé dans un onglet du navigateur.
tl;dr : ASCII mappe chaque caractère anglais de base et un ensemble de signaux de contrôle aux nombres 00127 ; des ensembles étendus comme ISO 8859-1 (latin-1) remplissent 12855. Capital
Aa 65 ans, minusculeaest 97, l'espace est 32, et le " ; invisible" ; les codes 0quot (9), le flux de ligne (10), le retour de chariot (13).Si vous pouvez lire le tableau, vous pouvez décoder presque n'importe quel bug de codage de texte, échapper à n'importe quel caractère en toute sécurité en HTML, et comprendre pourquoi UTF-8, JSON, et chaque langage de programmation se comportent comme ils le font avec les chaînes.
I' ; j'ai passé des années à construire des choses qui vivent et meurent sur la gestion de texte - un plugin d'administration WordPress, des API Laravel, des frontaux React - et je peux vous dire qu'un modèle mental fonctionnel d'ASCII permet d'économiser plus d'heures de débogage que presque tout autre élément de connaissance de bas niveau Ce guide est la version que j'aurais aimé que quelqu'un me remette tôt.
Qu'est-ce que l'ASCII et pourquoi est-ce encore important ?
ASCII signifie American Standard Code for Information Interchange. Il a été standardisé pour la première fois en 1963 et a été installé sous la forme que nous utilisons toujours sous le nom d'ANSI X3.4-1986 (également publiée au niveau international sous le nom d'ISO/IEC 646), et la définition du réseau encore citée aujourd'hui l'est RFC20 (1969).C'est en son cœur une table de recherche : un mappage des nombres 0 à 127 vers un ensemble spécifique de caractères et de signaux de commande Sept bits, 128 slots, un accord que l'ensemble du monde informatique pourrait partager.
Cet accord est la raison pour laquelle un fichier texte écrit sur un serveur Linux en 1990 s'ouvre encore correctement sur un ordinateur portable Mac aujourd'hui Avant les codes de caractères standard, chaque fabricant avait son propre schéma, et déplacer du texte entre les machines était un problème de traduction. ASCII a corrigé les 128 codes inférieurs en place, et il n'a jamais bougé depuis.
Ce qui surprend les gens, c'est la quantité d'informatique moderne qui repose encore directement dessus Unicode - le standard géant qui couvre les emoji, le chinois, l'arabe et tout autre script - rend délibérément ses 128 premiers points de code identiques à ASCII. UTF-8, l'encodage qui alimente le web, code ces 128 premiers points de code sous forme d'octets uniques avec les valeurs ASCII exactes Donc un fichier texte ASCII simple est aussi un fichier UTF-8 valide, octet pour octet Lorsque vous comprenez ASCII, vous avez compris la base sur laquelle le reste de l'encodage du texte est construit.
Comment est organisée la table ASCII ?
Les 128 codes standards se répartissent en quelques groupes naturels, et connaître le groupe est souvent plus utile que mémoriser une seule valeur.
Caractères de contrôle (031 et 127). Ce sont les codes non imprimables Ils portent des instructions plutôt que des glyphes : null (0), bell (7), backspace (8), tab horizontal (9), ligne feed (10), retour chariot (13), escape (27), et delete (127) sont ceux que vous' ; se rencontreront réellement Ils ont été conçus pour conduire des machines de télétype, et leurs fantômes exécutent toujours tout, des fins de ligne dans vos fichiers sources aux séquences d'échappement qui colorent votre sortie de terminal.
Ponctuation imprimable et symboles (3247, 5864, 9196, 123126). L'espace est de 32 - le code imprimable le plus bas, et techniquement un caractère d'impression même s'il ne montre rien Le reste sont les symboles dispersés autour de votre clavier : ! est 33, @ a 64 ans, ~ est 126.
Chiffres (4885). Les personnages 0 par 9 asseyez-vous dans une course soignée de 48 à 57. Cet ordre est délibéré : soustrayez 48 d'un chiffre' ; s code et vous obtenez sa valeur numérique, c'est ainsi que presque chaque " ; analysez un nombre à partir d'une chaîne" ; la routine commence.
Lettres majuscules (65 lettres majuscules 90) et minuscules (97 122). A a 65 ans, Z est 90 ; a est 97, z est 122. l'écart entre une lettre et le numéro 39 ; sa forme majuscule et minuscule est toujours exactement 32.
La gamme étendue (128255) est un animal différent, et elle' ; où vit le plus de confusion - il obtient donc sa propre section ci-dessous.
Quelle est la différence entre l'ASCII et l'ASCII étendu ?
L'ASCII standard ne définit que 128 codes car il n'utilise que sept bits. Mais les ordinateurs stockent le texte en octets de huit bits, ce qui laisse un total de 12 emplacements supplémentaires (128255) inutilisés par la norme. & quota ; ASCII" étendu ; est le terme générique désignant les différents schémas qui remplissent ces emplacements.
Le hic - et c'est & #39 ; est un gros - c'est qu'il n'y a pas d'ASCII étendu unique Différentes pages de codes attribuent les 128 codes supérieurs complètement différemment IBM' ; la page de codes 437 y met des caractères dessinant des boîtes Windows-1252 y met des guillemets bouclés et le signe euro ISO/IEC 8859-1, dit Latin-1, y met des lettres accentuées d'Europe occidentale Un octet de valeur 233 est é en latin-1, mais autre chose entièrement dans la page de codes 437.
Sur Toolz.dev j'affiche l'attribution ISO 8859-1 (latin-1) pour les codes 16025, car il s'agit d'une véritable norme publiée et c'est la base du jeu de caractères HTML original - ce qui signifie que les entités HTML nommées s'alignent. Les codes 128159 en latin-1 sont un deuxième bloc de contrôle (les commandes " ; C1" ;), donc l'outil les étiquette comme telles plutôt que de prétendre qu'elles et n°39 ; réimprimable.
La leçon pratique : quand quelqu'un dit " ; ASCII étendu," ; toujours demander laquelle. Une page de code non adaptée est la cause classique du é mojibake vous voyez quand un fichier UTF-8 est lu comme Latin-1, ou les cases de glyphes manquantes quand l'inverse se produit Comprendre confidentialité des données et comment les outils gèrent votre texte est une préoccupation ; comprendre comment les octets correspondent aux caractères est l’autre moitié de ne plus jamais être surpris par un texte brouillé.
Pourquoi les majuscules et les minuscules diffèrent-elles exactement de 32 ?
C'est ma pièce préférée de conception ASCII, car elle et #39 ; n'est pas un accident - it' ; s ingénierie. La disposition a été choisie de telle sorte qu'une lettre' ; les formes majuscules et minuscules ne diffèrent que par le bit 5, qui a la valeur 32. A est 65 (binaire 01000001); a est 97 (binaire 01100001). La seule différence est ce seul bit.
Cette décision signifie qu'un programme peut changer de casse avec une opération au niveau du bit au lieu d'une table de recherche. Pour majuscule, une lettre minuscule, effacez le bit 5 (code & ~32) ; pour minusculer un majuscule, réglez-le (code | 32) ; pour échanger le casse dans un sens ou dans l'autre, retournez-le (code ^ 32). Des décennies de bibliothèques de chaînes ont été construites sur cette astuce avant Unicode' ; les règles de cas plus complexes le rendaient dangereux pour tout ce qui va au-delà de l'ASCII simple. Lorsque vous parcourez le tableau et remarquez que chaque lettre majuscule se trouve précisément 32 sous son jumeau minuscule, vous et #39 ; vous regardez une décision prise dans les années 1960 qui façonne encore la façon dont les logiciels sont écrits.
Comment convertir-je entre caractères, décimal, hexadécimal et binaire ?
Chaque code ASCII a quatre représentations communes, et se déplacer entre elles est une partie courante du travail de bas niveau. Ici et n°39 ; c'est la façon dont ils se rapportent pour la lettre H:
| Représentation | Valeur pour H |
Où vous et le n°39 ; je le verrai |
|---|---|---|
| personnage | H |
texte normal |
| décimal | 72 | String.fromCharCode(72), chr(72) |
| hexadécimal | 48 | Des décharges hexagonales, \x48, URL/pourcentage d'encodage |
| octal | 110 | Les outils Unix plus anciens, \110 évasions |
| binaire | 01001000 | Opérations par bits, conception de protocoles |
Pour épeler un mot de hex, prenez chaque paire de chiffres hexadécimaux comme un octet : 48 69 est 72 105 en décimal, ce qui est Hi. Pour aller dans l'autre sens, recherchez chaque caractère' ; s code. Le Tableau ASCII fait les deux directions - il affiche les cinq colonnes pour chaque code, et son champ de recherche accepte un caractère, un nombre décimal, une valeur hexadécimale (avec ou sans un 0x préfixe), une chaîne octale ou binaire, ou encore un nom d'entité HTML, donc tapage &, 38, ou amp tous sautent à l'esperluette.
Si vous et n°39 ; convertissez régulièrement des chaînes entières ou travaillez sur des bases de nombres au-delà de l'ASCII, le traducteur binaire et le Convertisseur de base de nombres sont les outils compagnons que je cherche La table ASCII est la référence ; ces deux-là sont les établis.
À quoi servent réellement les caractères de contrôle ASCII ?
Les codes non imprimables 031 (plus 127) ressemblent à des pièces de musée, mais plusieurs d'entre elles mènent votre vie quotidiennement.
Alimentation de ligne (10) et retour de chariot (13) sont les deux grands Sur un télétype, le retour chariot a déplacé la tête d'impression vers la marge gauche et le flux de ligne a fait avancer le papier d'une ligne - deux actions physiques distinctes Cet héritage est la raison pour laquelle les fichiers texte Windows terminent les lignes avec les deux (CRLF13 puis 10), tandis qu'Unix et macOS utilisent uniquement le flux de ligne (LF(dix). Presque tous les " ; pourquoi mon dossier est-il rempli de ^M personnages ?" ; le bug remonte à cette scission Mon désastre CSV de l'intro était exactement ceci.
Onglet horizontal (9) est le caractère tab - un seul octet que les éditeurs restituent sous forme de plusieurs espaces. Nul (0) termine les chaînes en C et marque " ; pas de données" ; dans d'innombrables formats. Échapper (27) introduit les séquences de contrôle qui déplacent votre curseur et colorent votre terminal. Cloche (7) une fois, une véritable cloche a sonné ; maintenant, il émet un bip ou clignote la fenêtre de votre terminal.
La raison pour laquelle un bon tableau nomme ces codes est importante : lorsque vous trouvez un octet 27 assis dans vos données, " ; ESC - Escape" ; vous indique instantanément que vous et #39 ; regardez une séquence de contrôle de terminal, pas un texte corrompu Un nombre brut vous laisserait deviner.
Quel est le lien entre l'ASCII et les entités HTML et l'évasion en toute sécurité ?
Si vous écrivez pour le web - et le bâtiment une boîte à outils solide pour les développeurs cela signifie que vous devrez - une poignée de caractères ASCII doivent s'échapper pour que le navigateur les lise à tort comme balisage. Le signe inférieur à < (60), supérieur à > (62), esperluette & (38), et double citation " (34) sont les quatre dangereux. Laissés bruts à l'intérieur du HTML, ils peuvent casser votre page ou ouvrir un trou d'injection ; écrit comme entités (<, >, &, ") ils restituent comme caractères littéraux.
Chaque code possède également une entité HTML numérique dans le formulaire &#code;[TRADUCTION], donc même un caractère sans entité nommée peut toujours être écrit en toute sécurité La table ASCII répertorie l'entité nommée où il existe et la forme numérique dans le cas contraire, et cliquer sur la colonne HTML la copie directement dans votre presse-papiers Lorsque vous devez coder ou décoder tout un bloc de balisage plutôt que de rechercher un seul caractère, le Entités HTML tool gère le travail par lots Pour une visite plus approfondie des utilitaires d'encodage que j'utilise au jour le jour, le Guide des outils de codage marche dans tout le plateau.
La table ASCII est-elle la même que Unicode ?
Non, mais ils & #39 ; sont délibérément compatibles, et la relation vaut la peine d'être réglée Unicode est une norme beaucoup plus grande - plus d'un million de points de code possibles, couvrant chaque système d'écriture plus les symboles et les emoji ASCII, avec ses 128 codes, est un sous-ensemble minuscule Ce qui les fait bien jouer ensemble est que Unicode' ; les 128 premiers points de code sont définis comme étant identiques à ASCII, et UTF-8 code exactement ces 128 comme des octets simples avec leurs valeurs ASCII.
La conséquence est élégante : tout fichier ASCII valide est automatiquement un fichier UTF-8 valide Vous n'avez jamais à convertir de texte anglais simple entre les deux Au moment où vous passez au-delà du code 127 - une lettre accentuée, une citation bouclée, un emoji - vous laissez ASCII derrière vous et vous' ; êtes fermement en territoire Unicode multi-octets, où un caractère peut occuper deux, trois ou quatre octets La table ASCII Toolz.dev couvre directement les plages ASCII et Latin-1, et son encodeur de texte signale le point de code Unicode pour tout caractère que vous collez au-delà d'elles, afin que vous puissiez voir exactement où se termine ASCII et où Unicode prend le dessus.
Questions fréquentes
Qu'est-ce que l'ASCII ?
L'ASCII (American Standard Code for Information Interchange) est une norme de codage de caractères qui mappe les lettres, les chiffres, la ponctuation et les signaux de contrôle aux chiffres 0-127. Il a été standardisé comme ANSI X3.4 en 1963 et reste le fondement des encodages de textes modernes, dont UTF-8, dont les 128 premiers points de code sont identiques à ASCII.
Quelle est la valeur ASCII de " ; A" ; ?
La lettre majuscule & quot ; A" ; a la valeur ASCII 65 (hex 41, octal 101, binaire 01000001).Terrain " ; a" ; est 97 - exactement 32 plus élevé - c'est pourquoi le retournement du bit 5 bascule une lettre entre majuscule et minuscule.
Quelle est la différence entre l'ASCII et l'ASCII étendu ?
L'ASCII standard utilise 7 bits et définit 128 codes (0127). " ; Extended ASCII" ; utilise le huitième bit pour ajouter 128 autres codes (128255) pour les lettres accentées, les symboles et les caractères de dessin de boîte Il n'y a pas d'ASCII étendu unique - différentes pages de code attribuent la moitié supérieure différemment Ce tableau montre l'affectation ISO 8859-1 (latin-1), la base du jeu de caractères HTML Latin-1.
Quels sont les caractères de contrôle ASCII ?
Les codes 0 à 31 et 127 sont des caractères de contrôle non imprimés qui portent des instructions plutôt que des glyphes visibles. Les plus courants comprennent l'avancement de ligne (10), le retour chariot (13), la languette horizontale (9), l'échappement (27) et la valeur nulle (0). Ils contrôlaient à l'origine des télétypes et interrompent toujours les lignes, les champs de délimitation et les séquences d'échappement des terminaux de lecteur aujourd'hui.
Comment convertir HEX en ASCII ?
Chaque paire de chiffres hexadécimaux représente un octet, qui correspond à un code ASCII. Hex 48 vaut 72 en décimal, ce qui correspond à " ; H" ; ; hex 69 vaut 105, ce qui correspond à " ; i" ; - donc 48 69 sorts " ; Hi" ;. Recherchez dans la table ASCII la valeur hex (avec ou sans préfixe 0 x) pour trouver instantanément le caractère correspondant.
Pourquoi les majuscules diffèrent-elles des minuscules de 32 Ascii ?
ASCII a été présenté de telle sorte que la seule différence entre une lettre et un numéro 39 ; les formes majuscules et minuscules est le bit 5 (la valeur 32). " ; A" ; est 65 et " ; a" ; est 97 ; " ; Z" ; est 90 et " ; z" ; est 122. Cette conception délibérée permet aux programmes de changer de cas avec une seule opération au niveau du bit plutôt qu'une table de recherche.
La table ASCII est-elle la même que Unicode ?
Pas le même, mais compatible Unicode est une norme beaucoup plus grande couvrant plus d'un million de points de code sur chaque système d'écriture Ses 128 premiers points de code sont identiques à ASCII, et UTF-8 les code comme des octets uniques, donc le texte ASCII valide est également valide UTF-8 La table ASCII couvre les plages ASCII et Latin-1 ; son encodeur rapporte les points de code Unicode pour les caractères au-delà d'eux.
Mon texte est-il privé lorsque j'utilise la table ASCII ?
Oui. La table entière est générée dans votre navigateur en JavaScript simple, et tout texte que vous collez dans l'encodeur est traité localement - il n'est jamais téléchargé, enregistré ou stocké, et l'outil continue de fonctionner sans connexion réseau une fois la page chargée.
Écrit par Liton, constructeur de [Toolz.dev](/, WP Adminify et d'une longue lignée de projets Laravel et React qui, tôt ou tard, se résumaient à corriger les octets.



