Pregunta

Muchos lenguajes tienen funciones que solo procesan "texto plano", no binario. ¿Significa esto que solo se permitirán caracteres dentro del rango ASCII?

El binario es solo una serie de bytes, ¿no es similar al texto plano, que es solo una serie de bytes interpretados como caracteres? Entonces, ¿puede el texto sin formato almacenar los mismos formatos / protocolos de datos que los binarios?

¿Fue útil?

Solución

Una cosa que a menudo significa es que el lenguaje puede sentirse libre de interpretar los caracteres de control certianos, como los valores 10 o 13, como terminadores de línea lógicos. En otras palabras, una operación de salida podría agregar automáticamente estos caracteres al final, y una operación de entrada podría despojarlos de la entrada (y / o terminar la lectura allí).

En contraste, las operaciones de E / S de lenguaje que anuncian trabajar en "binario" los datos generalmente incluirán un parámetro de entrada para la longitud de los datos para operar, ya que no hay otra manera (excepto leer el final del archivo) para saber cuándo se hace.

Otros consejos

un texto sin formato es legible para humanos, un humano generalmente no puede leer un archivo binario, ya que está compuesto de caracteres imprimibles y no imprimibles.

Intente abrir un archivo jpeg con un editor de texto (por ejemplo, bloc de notas o vim) y comprenderá lo que quiero decir.

Un archivo binario generalmente se construye de una manera que optimiza la velocidad, ya que no se necesita análisis. Un archivo de texto sin formato es editable a mano, un archivo binario no.

" Texto sin formato " puede tener varios significados

El más útil en este contexto es que se trata simplemente de archivos binarios que están organizados en secuencias de bytes que un sistema informático particular puede traducir en un conjunto finito de lo que considera "texto". caracteres.

Un segundo significado, algo conectado, es una restricción de que dicho sistema debe mostrar estos "caracteres de texto". como símbolos legibles por un humano como miembros de un alfabeto reconocible. A menudo, la implicación no escrita es que el mecanismo de traducción es ASCII.

Un tercer significado, aún más restrictivo, es que este sistema debe ser un "simple". editor de texto / visor. Por lo general, implica codificación ASCII. Pero, realmente, hay MUY poca diferencia entre usted, el humano, que lee el texto codificado en algún formato original y que se muestra en un programa propietario, en comparación con el editor de texto VI que lee el archivo codificado ASCII.

Dentro del contexto de programación , su entorno de programación (comprendido por OS + API del sistema + sus capacidades de idioma) define tanto un conjunto de "texto". caracteres y un conjunto de codificaciones que puede leer para convertir a estos " texto " caracteres. Tenga en cuenta que esto puede no implicar necesariamente ASCII, inglés u 8 bits; por ejemplo, Perl puede leer y utilizar de forma nativa el conjunto completo de caracteres Unicode de "caracteres".

Para responder a su pregunta específica, definitivamente puede usar " personaje " cadenas para transmitir secuencias de bytes arbitrarias, con la advertencia de que deben aplicarse las convenciones de terminación de cadenas. El problema es que las funciones que ya existen para procesar datos de caracteres probablemente no tendría ninguna funcionalidad útil para manejar sus datos binarios.

Generalmente, depende del idioma / entorno / funcionalidad.

Los datos binarios son siempre eso: binarios. Se transfiere sin modificación.

" Texto sin formato " modo puede significar una o más de las siguientes cosas:

  • la secuencia de bytes se divide en líneas. Los delimitadores de línea son \ r, \ n o \ r \ n, o \ n \ r. A veces depende del sistema operativo (como * nix le gusta \ n, mientras que Windows le gusta \ r \ n). El final de línea puede ajustarse para la aplicación de lectura
  • Se puede ajustar la codificación de caracteres
  • . El entorno puede detectar y / o convertir la codificación de origen en la codificación que la aplicación espera
  • probablemente se deberían agregar algunas otras conversiones a esta lista, pero no puedo pensar en nada más en este momento

Técnicamente nada. El texto sin formato es una forma de datos binarios. Sin embargo, una diferencia importante es cómo se almacenan los valores. Piense en cómo se podría almacenar un número entero. En datos binarios usaría un formato de complemento a dos, probablemente ocupando 32 bits de espacio. En formato de texto, un número se almacenaría en su lugar como una serie de dígitos unicode. Por lo tanto, el número 50 se almacenaría como 0x32 (rellenado para ocupar 32 bits) en binario, pero se almacenaría como '5' '0' en texto plano.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top