Кодирование символов в unicode с использованием функции Excel
Для кодирования символов в unicode в программе Excel используется функция UNICODE. Она предназначена для выполнения преобразования первого символа строки в соответствующее ему кодовое (числовое) значение согласно таблице стандарта кодировки Юникод, и возвращает соответствующее числовое значение.
Unicode – распространенный стандарт кодирования символов, содержащий символы практически всех языков мира. Является наиболее востребованным стандартом для сервисов в глобальной сети и программных продуктов, используемых на локальных устройствах.
Примеры использования функции UNICODE для кодирования символов в Excel
Пример 1. В таблице введены несколько букв русского алфавита. Необходимо в смежном столбце вывести численные представления указанных символов в кодировке Юникод.
Чтобы вывести сразу все значения, выделим ячейки B1:B7 и запишем следующую формулу, а для подтверждения нажмем комбинацию клавиш CTRL+Enter:
Как видно из данного примера в кодировке Юникод каждый символ букв кириллицы кодируется в четырехзначное число.
Кодирование и представление символов чисел и в кодировке Юникод
Пример 2. Вывести массив случайных чисел от 0 до 9, создать массив кодов Unicode для данных чисел. Определить, существует ли между ними взаимосвязь (визуально с помощью графика).
Вид таблицы со столбцом, заполненным случайными числами:
Для заполнения столбца была использована функция СЛУЧМЕЖДУ(0;9). При любом действии на листе Excel, данная функция выполняет пересчет значений. Чтобы получить статические данные, полученные числа были скопированы и вставлены в ячейки с использованием инструмента Специальная вставка -> значения.
Вычислим значения кодов Unicode с помощью формулы:
Построим график:
На основании данного графика можно сделать вывод: для больших значений чисел предусмотрены большие значения кодов, то есть нумерация в таблице Unicode идет последовательно для числовых значений (что, собственно, и так очевидно).
Посимвольное кодирование паролей в Excel
Пример 3. Создать простой способ шифрования пароля цифрами. В таблице есть несколько вариантов паролей, записать в смежном столбце их числовые шифры.
Вид таблицы данных:
Чтобы автоматизировать процедуру шифрования, необходима следующая логика:
- Функция, выполняющая разбивку строки на отдельные символы.
- При переборе каждого символа из массива выполняется преобразование в числовое представление Юникод.
- Формирование новой строки из численных представлений символов.
Для такой задачи рационально использовать макросы VBA. С помощью функций Excel можно реализовать полу ручной подход:
- Разбивка на символы с помощью функции ПСТР и запись символов в отдельные ячейки.
- Преобразование с помощью функции UNICODE.
- Создание новой строки с использованием функции СЦЕП.
Получим массивы символов для каждого из паролей:
Функция ПСТР возвращает часть строки, ограниченную номерами позиций символов, указанных в качестве второго и третьего аргумента. Поскольку требуется вывести 1 символ, третий аргумент принимает значение 1. Функция ЧИСЛСТОЛБ($A$2:G$2) с зафиксированными ячейками (символ $) возвращает требуемый номер столбца, соответствующий номеру символа в строке.
Растянем данную формулу по строке и получим следующее:
Для получения шифра первого пароля используем следующую формулу массива:
Примечание:
Данная формула была записана в ячейку B7, поскольку формулы массивов не могут выполняться в объединенных ячейках. Аналогично сгенерируем шифры для остальных паролей:
Недостаток метода состоит в том, что для дешифрации (обратного преобразования) требуются ключи, указывающие на количество цифр, соответствующих числовому обозначению символа в Юникод.
Особенности кодирования с использованием функции UNICODE в Excel
Функция имеет следующую синтаксическую запись:
=UNICODE(текст)
Единственным аргументом, обязательным для заполнения, является текст – текстовая строка или один символ, для которого требуется определить соответствующее числовое значение кодировки Юникод.
Примечания:
- Несмотря на то, что данная функция принимает на вход текстовую строку, фактически числовое представление определяется для первого символа строки. То есть, результаты выполнения функций =UNICODE("слово") и =UNICODE("с") будут эквивалентны, поскольку числовое представление определяется для символа «с» - 1089.
- При работе с данными логического типа выполняется промежуточное преобразование к текстовым данным. Например, функции =UNICODE(ИСТИНА) и =UNICODE("ИСТИНА") вернут одинаковое значение 1048, поскольку строчная «И» представлена числовым кодом 1048.
- При вводе имен будет возвращен код ошибки #ИМЯ? (например, =UNICODE(табл1)).