Question

De nombreuses langues ont des fonctions qui traitent uniquement le texte en clair, non binaire. Cela signifie-t-il que seuls les caractères compris dans la plage ASCII seront autorisés?

Le binaire est juste une série d’octets. N’est-il pas semblable au texte en clair qui n’est qu’une série d’octets interprétés comme des caractères? Ainsi, le texte en clair peut-il stocker les mêmes formats / protocoles de données que les fichiers binaires?

Était-ce utile?

La solution

Cela signifie souvent que le langage peut librement interpréter les caractères de contrôle du certian, tels que les valeurs 10 ou 13, comme des terminateurs de ligne logique. En d’autres termes, une opération de sortie pourrait automatiquement ajouter ces caractères à la fin, et une opération de saisie pourrait les supprimer de l’entrée (et / ou y mettre fin à la lecture).

En revanche, les opérations d’E / S de langue qui annoncent le travail sur "binaire". les données incluent généralement un paramètre d'entrée pour la longueur des données sur lesquelles opérer, car il n'y a pas d'autre moyen (à moins de lire après la fin du fichier) de savoir quand cela est fait.

Autres conseils

un texte brut est lisible par un humain, un fichier binaire est généralement illisible par un humain, car il est composé de caractères imprimables et non imprimables.

Essayez d’ouvrir un fichier jpeg avec un éditeur de texte (par exemple, le bloc-notes ou vim) et vous comprendrez ce que je veux dire.

Un fichier binaire est généralement construit de manière à optimiser la vitesse, car aucune analyse n'est nécessaire. Un fichier texte brut est éditable à la main, pas un fichier binaire.

" Texte en clair " peut avoir plusieurs significations.

Ce qui est le plus utile dans ce contexte est qu’il s’agit simplement d’un fichier binaire organisé en séquences d’octets qu’un système informatique particulier peut traduire en un ensemble fini de ce qu’il considère comme du "texte". caractères.

Une deuxième signification, quelque peu liée, est une restriction selon laquelle ledit système doit afficher ces "caractères de texte". en tant que symboles lisibles par un humain en tant que membres d'un alphabet reconnaissable. L'implication non écrite est souvent que le mécanisme de traduction est ASCII.

Un troisième sens, encore plus restrictif, est que ce système doit être un système "simple". éditeur de texte / visualiseur. Cela implique généralement un encodage ASCII. Mais, vraiment, il y a TRES peu de différence entre vous, l'homme, lisez du texte encodé dans un format génial et affiché par un programme propriétaire, par rapport à l'éditeur de texte VI lisant un fichier encodé ASCII.

Dans le contexte de programmation , votre environnement de programmation (composé du système d'exploitation, des API système et de vos capacités linguistiques) définit à la fois un ensemble de "texte" et de "texte". caractères, et un ensemble d’encodages qu’il est capable de lire pour les convertir en "texte". personnages. Notez que cela n'implique pas nécessairement ASCII, Anglais ou 8 bits - à titre d'exemple, Perl peut lire et utiliser de manière native l'ensemble complet de "caractères" Unicode.

Pour répondre à votre question, vous pouvez certainement utiliser "caractère". chaînes pour transmettre des séquences d'octets arbitraires, avec l'avertissement que les conventions de terminaison de chaîne doivent appliquer. Le problème est que les fonctions qui existent déjà pour "traiter les données de caractère". n’aurait probablement aucune fonctionnalité utile pour traiter vos données binaires.

En règle générale, cela dépend de la langue / de l'environnement / des fonctionnalités.

Les données binaires sont toujours les suivantes: binaire. Il est transféré sans modification.

" Texte brut " mode peut signifier une ou plusieurs des choses suivantes:

  • le flux d'octets est divisé en lignes. Les délimiteurs de ligne sont \ r, \ n ou \ r \ n ou \ n \ r. Parfois, cela dépend du système d’exploitation (comme * nix aime \ n, tandis que Windows aime \ r \ n). La fin de ligne peut être ajustée pour l'application de lecture
  • le codage des caractères peut être ajusté. L’environnement peut détecter et / ou convertir le codage source en codage attendu par l’application
  • probablement quelques autres conversions devraient être ajoutées à cette liste, mais je ne peux plus en penser à ce moment-là

Techniquement rien. Le texte brut est une forme de données binaires. Cependant, une différence majeure réside dans la manière dont les valeurs sont stockées. Pensez à la manière dont un entier pourrait être stocké. En données binaires, il utiliserait un format à complément à deux, prenant probablement 32 bits d’espace. En format texte, un nombre serait stocké sous la forme d'une série de chiffres unicode. Ainsi, le nombre 50 serait stocké sous la forme 0x32 (complété pour prendre 32 bits) en binaire, mais sous la forme "5" "0" en texte brut.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top