uni — это инструмент с открытым исходным кодом, содержащий всего четыре команды, которые позволяют запрашивать базу данных Unicode из командной строки. Это заставит вас задуматься, как вы прожили свою жизнь, имея дело с кодировками символов без него.
С помощью этого инструмента вы можете запросить базу данных Unicode (полная поддержка Unicode 12.1) из интерфейса командной строки. Например, вы работаете с HTML и хотите найти HTML-экранирование знака евро? Скажите uni, чтобы он идентифицировал его:
> унифицировать €
cpoint dec utf-8 html name ‘€’ U + 20AC 8364 e2 82 ac & euro; ЗНАК ЕВРО (Currency_Symbol)
или понятия не имею, как выглядит знак евро? uni может работать и в обратном направлении:
> уни поиск евро
cpoint dec utf-8 html name ‘₠’ U + 20A0 8352 e2 82 a0 & # x20a0; ЗНАК ЕВРО-ВАЛЮТЫ (Currency_Symbol)
‘€’ U + 20AC 8364 e2 82 ac & euro; ЗНАК ЕВРО (Currency_Symbol)
Но почему доступ к Unicode из интерфейса командной строки является преимуществом? Как и во всем остальном, необходимо иметь в своем распоряжении интерфейс командной строки для выполнения операций на основе интерфейса командной строки. Для начала вы можете автоматизировать и писать программы, загружаемые со стандартного ввода, с помощью uni:
> head -c2 README.markdown | uni i cpoint dec utf-8 html name ‘[‘ U + 005B 91 5b & lsqb; ЛЕВЫЙ КВАДРАТНЫЙ КРОНШТЕЙН (Open_Punctuation)
‘!’ U + 0021 33 21 & excl; Восклицательный знак (Other_Punctuation)
Кроме того, вам не нужно тратить время на просмотр веб-страниц для поиска кодовых точек, представлений и другой информации о наборе символов, как это делал я при выполнении мелкозернистой «криминалистики», пытаясь отладить некоторые сценарии CGI, испорченные UTF8- связанный вопрос. Как описано в Perl Unicode Forensics:
Проблема заключалась в том, что один и тот же сценарий CGI давал разные результаты при запуске на разных серверах. В первом случае греческие символы, отправленные клиентом и потребленные сервером, попадают в базу данных должным образом, а во втором случае одни и те же данные в рамках того же рабочего процесса оказываются «мусором». Например, греческий символ заглавной буквы A или альфа заканчивается как последовательность «Γ \ 201».
Пытаясь отличить греческую альфу от латинской A, мне пришлось просматривать таблицы Latin1 / iso-8859-1 и Greek / iso-8859-7, чтобы найти нужную информацию. С uni я мог просто набрать:
Это магия.
Кроме того, мне пришлось искать те же символы в таблице UTF8, чтобы вернуть их байтовое представление. Что ж, uni would уже позаботились об этом на предыдущем шаге, сэкономив мое время и рассудок.
Но uni идет еще дальше; он может работать и со смайликами!
> uni e cry
Он включает в себя множество других функций и интеграций, которые вы проверяете на странице репозитория Github.
Он также поставляется в виде исходных или предварительно созданных двоичных файлов для многих платформ, что особенно полезно в Windows. Чтобы получить больше удовольствия от этой платформы, перейдите на новый терминал Windows. Для получения дополнительной информации о том, как Windows и консоль решают эти проблемы, ознакомьтесь с проблемами Unicode в Perl.
В заключение, если вы имеете дело с Unicode, обязательно попробуйте uni. Он станет вашим лучшим другом.