Examinar todos los caracteres visibles o invisibles de un archivo de texto

Examinar todos los caracteres visibles o invisibles de un archivo de texto

¿Existe algún software que pueda usarse para examinar todos los caracteres visibles o invisibles en un archivo de texto (caracteres como BOM, marca de dirección, avance de línea...)?

Mostrar el nombre Unicode de los caracteres también es una característica útil.

Quiero usar dicha aplicación para analizar archivos de texto antes de analizarlos con un lenguaje de programación.

Respuesta1

Un buen editor hexadecimal es probablemente tu mejor opción. Pruebe FrHed (http://frhed.sourceforge.net/en/) si estás en windows o bendice (http://home.gna.org/bless/) en Linux.

Respuesta2

ElBabelPadEl editor es genial: cuando colocas el cursor después de un carácter, te muestra el número Unicode y el nombre Unicode. Y tiene un visor de información Unicode incorporado, que muestra muchas propiedades Unicode para caracteres. Desafortunadamente, procesa la lista de materiales en lugar de mostrarla y también interpreta los caracteres de salto de línea en lugar de mostrarlos. Puede que haya una manera de cambiar esto; su documentación es... bueno, no es la mejor parte. Pero mostrará controles invisibles como LRM y podrá distinguir entre un espacio y un espacio sin interrupciones, etc.

Respuesta3

Quizás esto sea útil, aunque la respuesta se adapta más a Stack Overflow. Construí un pequeño analizador en Perl que hace lo que quieres. Lástima que no haya ningún resaltado aquí.

#!/usr/bin/perl
use strict; use warnings;
use feature qw(say);
use Data::Dumper;
use Unicode::String;
use utf8;

my $line_no = 1;
# Read stuff from the __DATA__ section as if it were a file,
# one line at a time
while (my $line = <DATA>) {
  # Create a Unicode::String object
  my $us = Unicode::String->new($line);

  # Iterate over the length of the string
  for (my $i = 0; $i < $us->length; $i++) {
    # Get the next char
    my $char = $us->substr($i, 1);
    # Output a description, one line per character
    printf "Line %i, column %i, 0x%x '%s' (%s)\n",
      $line_no,         # line number
      $i,               # colum number
      $char->ord,       # the ordinal of the char, in hex
      $char->as_string, # the stringified char (as in the input)
      $char->name;      # the glyph's name
  }
  # increment line number
  $line_no++;
}

# Below is the DATA section, which can be used as a file handle
__DATA__
This is some very strange unicode stuff right here:
٩(-̮̮̃-̃)۶ ٩(●̮̮̃•̃)۶ ٩(͡๏̯͡๏)۶ ٩(-̮̮̃•̃).

Veamos qué hace esto:

  • Leer desde un identificador de archivo (la DATAsección se puede usar así) línea por línea.
  • Cree un objeto que represente una cadena Unicode a partir de la línea.
  • Iterar los caracteres en esa cadena.
  • Nombre de salida, número y cosas sobre cada carácter.

Es realmente muy sencillo. Tal vez puedas adaptarlo a php, aunque no sé si existe una biblioteca útil para los nombres.

Espero eso ayude.


Levanté las cosas sonrientes aquí:¿De qué caracteres Unicode se componen los emoticonos como ٩(•̮̮̃•̃)۶?

Respuesta4

Yo lo recomiendoBloc de notas++. Si va a Ver->Mostrar símbolo y selecciona "Mostrar todos los símbolos", se mostrarán los caracteres invisibles con su nombre. Por ejemplo, mostrará líneas nuevas como LF, CRLF o CR según el formato de nueva línea que esté utilizando.

información relacionada