Um bom editor hexadecimal é provavelmente sua melhor aposta. Tente o FrHed ( link ) se você estiver no Windows ou abençoar ( link ) no linux.
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.
Eu quero usar esse aplicativo para analisar arquivos de texto antes de analisá-los com uma linguagem de programação.
O editor BabelPad é ótimo: quando você posiciona o cursor após um caractere, ele mostra a você Número Unicode e o nome Unicode. E ele possui um visualizador de informações Unicode interno, que mostra muitas propriedades Unicode para caracteres. Infelizmente, ele processa o BOM em vez de exibi-lo e também interpreta caracteres de quebra de linha em vez de exibi-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 pode distinguir entre um espaço e um espaço sem quebra, etc.
Talvez isso seja útil, embora a resposta seja mais adequada ao Stack Overflow. Eu construí um pequeno parser em Perl que faz o que você quer. Vergonha 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:
DATA
pode ser usada assim) linha por linha. É realmente muito simples. Talvez você possa adaptá-lo para php, embora eu não saiba se há uma biblioteca útil para os nomes.
Espero que ajude.
Eu levantei as coisinhas sorridentes aqui: Quais caracteres Unicode fazem smilies como • (• ̮̮̃ • ̃) ۶ consistem em?
O UltraEdit é um editor de texto multiplataforma com suporte a Unicode e um modo hexadecimal que lhe mostrará os códigos hexadecimais para tudo lado a lado lado com os personagens que eles geram. Ele ainda tem um diálogo de encontrar / substituir Hex (pelo menos na versão para Mac, que é o que estou usando no momento). É um pouco caro, mas também faz muitas outras coisas.
Eu recomendaria o Notepad ++ . Se você entrar em Exibir- > Mostrar símbolo e selecionar "Mostrar todos os símbolos", ele mostrará qualquer caractere invisível com seu nome. Por exemplo, ele mostrará novas linhas como LF, CRLF ou CR, dependendo do formato de nova linha que você está usando.