Проверка всех видимых и невидимых символов текстового файла

Проверка всех видимых и невидимых символов текстового файла

Существует ли программное обеспечение, которое можно использовать для проверки всех видимых и невидимых символов в текстовом файле (таких как BOM, указатель направления, перевод строки и т. д.)?

Полезной функцией также является отображение названий символов в кодировке Unicode.

Я хочу использовать такое приложение для анализа текстовых файлов перед их обработкой с помощью языка программирования.

решение1

Хороший шестнадцатеричный редактор, вероятно, будет вашим лучшим выбором. Попробуйте FrHed (http://frhed.sourceforge.net/en/) если вы на windows или благословляете (http://home.gna.org/bless/) на Linux.

решение2

TheBabelPadРедактор отличный: когда вы помещаете курсор после символа, он показывает вам номер Unicode и имя Unicode. И у него есть встроенный просмотрщик информации Unicode, который показывает множество свойств Unicode для символов. К сожалению, он обрабатывает BOM вместо того, чтобы показывать его, и он также интерпретирует символы переноса строки вместо того, чтобы показывать их. Возможно, есть способ изменить это; его документация... ну, не самая лучшая ее часть. Но он будет показывать невидимые элементы управления, такие как LRM, и может различать пробел и неразрывный пробел и т. д.

решение3

Может быть, это полезно, хотя ответ больше подходит для Stack Overflow. Я создал небольшой парсер на Perl, который делает то, что вам нужно. Жаль, что здесь нет подсветки.

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

Давайте посмотрим, что это делает:

  • Считывание из дескриптора файла ( DATAраздел может использоваться таким образом) построчно.
  • Создайте объект, представляющий строку Unicode из строки.
  • Перебрать символы в этой строке
  • Вывод имени, номера и информации о каждом символе

Это действительно очень просто. Может быть, вы сможете адаптировать это к php, хотя я не знаю, есть ли удобная библиотека для имен.

Надеюсь, поможет.


Я поднял смайлики здесь:Из каких символов Unicode состоят смайлики типа ٩(•̮̮̃•̃)۶?

решение4

Я бы рекомендовалБлокнот++. Если вы перейдете в Вид->Показать символ и выберете "Показать все символы", он покажет все невидимые символы с их именем. Например, он покажет новые строки как LF, CRLF или CR в зависимости от используемого вами формата новой строки.

Связанный контент