Анализатор строк Unicode с аккуратно расположенными результатами

У меня есть строка, и я хочу знать, из каких символов Unicode она состоит. Достаточно имени персонажа и кодовой точки.

Решение должно быть FLOSS и изначально работать в GNU/Linux.

Инструмент командной строки unicodeможет сделать это, но отображение результатов не так просто визуально проанализировать, поскольку символы отображаются между блоками метаданных каждого символа:

"О, хай" результат юникода

Веб-приложение https://r12a.github.io/uniview/ имеет лучшее представление, так как вы можете прочитать исходную строку (хотя и вертикальную) рядом с результатом, не пропуская строки метаданных:

«О, хай!» результат UniView

Какой инструмент имеет лучшее представление результатов?

В идеале это должен быть графический интерфейс, в котором входная строка отображается горизонтально, невизуальные символы каким-то образом помечаются, а нажатие на символ показывает его имя и метаданные. Но я открыт для других решений; Я бы даже был рад UniView-подобному дисплею, если есть локальный клиент, использующий что-то подобное.

Ответы (2)

Вы можете легко изменить презентацию, включив вывод unicodeв небольшой переписываемый текст. Чтобы получить ту же презентацию, что и в веб-приложении UniView:

unicode -s 'Oh, hai' |
perl -000 -ne '/^U+(.*)\n.*\n(.)/ and print "$2 $1\n"'

Кроме того, вы можете ввести текст в редакторе с хорошей поддержкой редактора. Например, в Emacs нажмите C-u C-x =(команда what-cursor-positionс аргументом-префиксом), чтобы отобразить много информации о символе под курсором, включая его кодовую точку Unicode, имя и свойства.

Вы можете получить более или менее то, что вам нужно, используя python и его модуль unicodedata - что-то вроде:

import unicodedata as ucd
u = u'The UK uses £ but Japan ¥'
for c in u:
    print c, "%04x" % ord(c), ucd.category(c), ucd.name(c)

производит:

T 0054 Lu LATIN CAPITAL LETTER T
h 0068 Ll LATIN SMALL LETTER H
e 0065 Ll LATIN SMALL LETTER E
  0020 Zs SPACE
U 0055 Lu LATIN CAPITAL LETTER U
K 004b Lu LATIN CAPITAL LETTER K
  0020 Zs SPACE
u 0075 Ll LATIN SMALL LETTER U
s 0073 Ll LATIN SMALL LETTER S
e 0065 Ll LATIN SMALL LETTER E
s 0073 Ll LATIN SMALL LETTER S
  0020 Zs SPACE
£ 00a3 Sc POUND SIGN
  0020 Zs SPACE
b 0062 Ll LATIN SMALL LETTER B
u 0075 Ll LATIN SMALL LETTER U
t 0074 Ll LATIN SMALL LETTER T
  0020 Zs SPACE
J 004a Lu LATIN CAPITAL LETTER J
a 0061 Ll LATIN SMALL LETTER A
p 0070 Ll LATIN SMALL LETTER P
a 0061 Ll LATIN SMALL LETTER A
n 006e Ll LATIN SMALL LETTER N
  0020 Zs SPACE
¥ 00a5 Sc YEN SIGN

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

  • Свободно
  • Уже установлен на большинстве дистрибутивов Linux
  • Если вам нужен графический интерфейс или вывод в формате html, вы можете довольно быстро его создать.