Сокращение GUID - PullRequest
       70

Сокращение GUID

3 голосов
/ 28 мая 2020

Мы генерируем GUID для документа и должны включать GUID в штрих-код (тип 29 2D), который закодирован C40 и имеет следующие ограничения.

Максимальная длина может составлять 25 символов. используйте ВВЕРХ буквенно-цифровые символы, без специальных символов.

Я думал о преобразовании в Base64, но в нем используются специальные символы.

1 Ответ

2 голосов
/ 28 мая 2020

Вы можете использовать кодировку base36 .

Учитывая, что UUID составляет всего 16 байтов, он должен уместиться в 25 символов base36.

Чтобы продемонстрировать, вот small JavaScript фрагмент, который берет пример UUID со страницы Википедии (123e4567-e89b-12d3-a456-426614174000) и преобразует его в base36:

const guid = BigInt('0x123e4567e89b12d3a456426614174000');
const encoded = guid.toString(36).toUpperCase();

console.log("Encoded: " + encoded); // 12VQJRNXK8WHV3I8QI6QGRLZ4
console.log("Length: " + encoded.length); // 25
...