Detectar codificação de caracteres desconhecidos no Notepad ++ e localizar / substituir

1

Eu tenho um arquivo CSV no qual posso ver o seguinte trecho:

Encontreiessescaracteres"pretos" rolando pelo arquivo. O arquivo é enorme (32 Mb). Não tenho certeza de qual codificação o arquivo está; No momento, meu Notepad ++ está definido para "Codificar em UTF-8" . Além disso, quando tento fazer ASCII - > HEX (Plugins - > Conversor - > ASCII - > HEX), recebo a seguinte saída:

EDA0BDEDB88A

Eu gostaria de saber:

  • A codificação desses caracteres pretos.
  • Uma expressão regular para encontrar ocorrências semelhantes dentro do meu arquivo CSV
por user2068804 06.06.2017 / 08:19

1 resposta

2

Os caracteres pretos são causados pelo Notepad ++ não conseguir mapear essas sequências de bytes para um ponto final UTF-8 que pode ser visualizado. Como você deve saber, cada caractere é armazenado como uma série de bytes. Neste caso, esses bytes são

Em hexadecimal

ED A0 BD ED B8 8A

Em binário

1110 1101 1010 0000 1011 1101 1110 1101 1011 1000 1000 1010

Isso nos leva às suas perguntas.

What is the encoding of those black characters?

Estes são dois caracteres UTF-8. Mais especificamente, o primeiro ED A0 BD é o que é chamado de 'alto substituto' o segundo ED B8 8A é um 'baixo substituto' . Juntos, eles formam um substituto do UCS . Agora que sabemos que esses são caracteres substitutos, podemos inverter o cálculo do par substituto .

Se você procurar essas sequências de bytes no código UTF-8 tabela de pontos , você descobrirá que o primeiro mapeia para U+D83D e o segundo mapeia para U+DE0A . Assim, o par é D83D + DE0A. Este mapeia para U + 1F60A, que é ..... drumroll Um smiley !

Então, a sequência que você está olhando ... é um sorriso.

A regular expression to find these characters

Agora que sabemos disso, podemos usar o regex para encontrar sequências como esta:

\x{D83D}\x{DE0A}

E, em seguida, para a pergunta que você adicionou nos comentários depois (isso é uma edição).

is there any other utility I can find the characters which are not in UTF8 in my csv file.

Eu mostrei agora que os caracteres em seu arquivo são UTF-8. No entanto, para continuar respondendo à sua pergunta, se você quiser que uma ferramenta tente manualmente e encontre a codificação de alguns caracteres, use este site . Aqui você pode inserir algum texto, especificar a codificação e transformá-lo em outra codificação para ver com quais caracteres ele é mapeado.

    
por 06.06.2017 / 17:26