Examine todos os caracteres visíveis ou invisíveis de um arquivo de texto

Examine todos os caracteres visíveis ou invisíveis de um arquivo de texto

Existe algum software que possa ser usado para examinar todos os caracteres visíveis ou invisíveis em um arquivo de texto (caracteres como BOM, marca de direção, avanço de linha...)?

Mostrar o nome Unicode dos caracteres também é um recurso útil.

Quero usar esse aplicativo para analisar arquivos de texto antes de analisá-los com uma linguagem de programação.

Responder1

Um bom editor hexadecimal é provavelmente sua melhor aposta. Experimente FrHed (http://frhed.sourceforge.net/en/) se você estiver no Windows ou abençoe (http://home.gna.org/bless/) no Linux.

Responder2

OBabelPadO editor é ótimo: quando você coloca o cursor após um caractere, ele mostra o número Unicode e o nome Unicode. E possui um visualizador de informações Unicode integrado, que mostra muitas propriedades Unicode para caracteres. Infelizmente, ele processa a lista técnica em vez de mostrá-la e também interpreta caracteres de quebra de linha em vez de mostrá-los. Pode haver uma maneira de mudar isso; sua documentação é... bem, não é a melhor parte disso. Mas mostrará controles invisíveis como o LRM e poderá distinguir entre um espaço e um espaço sem interrupção, etc.

Responder3

Talvez isso seja útil, embora a resposta seja mais adequada ao Stack Overflow. Eu construí um pequeno analisador em Perl que faz o que você deseja. Pena que não há destaque aqui.

#!/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:
٩(-̮̮̃-̃)۶ ٩(●̮̮̃•̃)۶ ٩(͡๏̯͡๏)۶ ٩(-̮̮̃•̃).

Vamos ver o que isso faz:

  • Leia um identificador de arquivo (a DATAseção pode ser usada assim) linha por linha.
  • Crie um objeto que represente uma string Unicode da linha.
  • Itere os caracteres nessa string
  • Nome de saída, número e outras coisas sobre cada caractere

É realmente muito simples. Talvez você possa adaptá-lo para php, embora eu não saiba se existe uma biblioteca útil para os nomes.

Espero que ajude.


Eu levantei as coisas sorridentes aqui:Em quais caracteres Unicode consistem smilies como ٩(•̮̮̃•̃)۶?

Responder4

eu recomendariaBloco de notas++. Se você for em Exibir->Mostrar símbolo e selecionar "Mostrar todos os símbolos", todos os caracteres invisíveis com seu nome serão exibidos. Por exemplo, mostrará novas linhas como LF, CRLF ou CR dependendo do formato de nova linha que você está usando.

informação relacionada