Кодирование символов в unicode с использованием функции Excel

Для кодирования символов в unicode в программе Excel используется функция UNICODE. Она предназначена для выполнения преобразования первого символа строки в соответствующее ему кодовое (числовое) значение согласно таблице стандарта кодировки Юникод, и возвращает соответствующее числовое значение.

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

Примеры использования функции UNICODE для кодирования символов в Excel

Пример 1. В таблице введены несколько букв русского алфавита. Необходимо в смежном столбце вывести численные представления указанных символов в кодировке Юникод.

Чтобы вывести сразу все значения, выделим ячейки B1:B7 и запишем следующую формулу, а для подтверждения нажмем комбинацию клавиш CTRL+Enter:

Пример 1.

Как видно из данного примера в кодировке Юникод каждый символ букв кириллицы кодируется в четырехзначное число.



Кодирование и представление символов чисел и в кодировке Юникод

Пример 2. Вывести массив случайных чисел от 0 до 9, создать массив кодов Unicode для данных чисел. Определить, существует ли между ними взаимосвязь (визуально с помощью графика).

Вид таблицы со столбцом, заполненным случайными числами:

Пример 2.

Для заполнения столбца была использована функция СЛУЧМЕЖДУ(0;9). При любом действии на листе Excel, данная функция выполняет пересчет значений. Чтобы получить статические данные, полученные числа были скопированы и вставлены в ячейки с использованием инструмента Специальная вставка -> значения.

Вычислим значения кодов Unicode с помощью формулы:

Построим график:

UNICODE.

На основании данного графика можно сделать вывод: для больших значений чисел предусмотрены большие значения кодов, то есть нумерация в таблице Unicode идет последовательно для числовых значений (что, собственно, и так очевидно).

Посимвольное кодирование паролей в Excel

Пример 3. Создать простой способ шифрования пароля цифрами. В таблице есть несколько вариантов паролей, записать в смежном столбце их числовые шифры.

Вид таблицы данных:

Пример 3.

Чтобы автоматизировать процедуру шифрования, необходима следующая логика:

  1. Функция, выполняющая разбивку строки на отдельные символы.
  2. При переборе каждого символа из массива выполняется преобразование в числовое представление Юникод.
  3. Формирование новой строки из численных представлений символов.

Для такой задачи рационально использовать макросы VBA. С помощью функций Excel можно реализовать полу ручной подход:

  1. Разбивка на символы с помощью функции ПСТР и запись символов в отдельные ячейки.
  2. Преобразование с помощью функции UNICODE.
  3. Создание новой строки с использованием функции СЦЕП.

Получим массивы символов для каждого из паролей:

Функция ПСТР возвращает часть строки, ограниченную номерами позиций символов, указанных в качестве второго и третьего аргумента. Поскольку требуется вывести 1 символ, третий аргумент принимает значение 1. Функция ЧИСЛСТОЛБ($A$2:G$2) с зафиксированными ячейками (символ $) возвращает требуемый номер столбца, соответствующий номеру символа в строке.

Растянем данную формулу по строке и получим следующее:

Посимвольное кодирование.

Для получения шифра первого пароля используем следующую формулу массива:

Примечание:

Данная формула была записана в ячейку B7, поскольку формулы массивов не могут выполняться в объединенных ячейках. Аналогично сгенерируем шифры для остальных паролей:

шифрование паролей.

Недостаток метода состоит в том, что для дешифрации (обратного преобразования) требуются ключи, указывающие на количество цифр, соответствующих числовому обозначению символа в Юникод.

Особенности кодирования с использованием функции UNICODE в Excel

Функция имеет следующую синтаксическую запись:

=UNICODE(текст)

Единственным аргументом, обязательным для заполнения, является текст – текстовая строка или один символ, для которого требуется определить соответствующее числовое значение кодировки Юникод.

Примечания:

  1. Несмотря на то, что данная функция принимает на вход текстовую строку, фактически числовое представление определяется для первого символа строки. То есть, результаты выполнения функций =UNICODE("слово") и =UNICODE("с") будут эквивалентны, поскольку числовое представление определяется для символа «с» - 1089.
  2. При работе с данными логического типа выполняется промежуточное преобразование к текстовым данным. Например, функции =UNICODE(ИСТИНА) и =UNICODE("ИСТИНА") вернут одинаковое значение 1048, поскольку строчная «И» представлена числовым кодом 1048.
  3. При вводе имен будет возвращен код ошибки #ИМЯ? (например, =UNICODE(табл1)).

en ru