Что такое Форматтер UUID
Одни и те же 128 бит можно записать по-разному, и каждая экосистема выбрала свой вариант. Каноническая форма — нижний регистр с дефисами, 8-4-4-4-12. .NET оборачивает значение в фигурные скобки, логи часто теряют дефисы, для URL нужно что-то короче 36 символов, исходный код C# ожидает байтовый массив, а PostgreSQL требует типизированный литерал, прежде чем считать строку значением типа uuid.
Форматтер принимает любое из этих написаний и переписывает каждую строку в выбранный вами вариант. Это самый быстрый способ привести столбец идентификаторов разного регистра к одному виду перед сравнением или получить точный литерал для миграции и файла конфигурации.
Как использовать
- Вставьте UUID по одному в строке — регистр, дефисы, скобки и кавычки допускаются.
- Выберите формат вывода. Список пересчитывается сразу при изменении.
- Нажмите Копировать всё или Скачать .txt; строки, не являющиеся UUID, пропускаются, их число показывается в уведомлении.
Сценарии
- Расхождение регистра и дефисов: база хранит значения в нижнем регистре, логи выводят в верхнем, и JOIN молча не срабатывает.
- API и URL: 22 символа base64url вместо 36 символов канонической записи.
- Код и миграции:
byte[]для C#, типизированный SQL-литерал или «голые» 32 hex-символа для старых колонок.
Сравнение Форматтер UUID с другими форматами
| Вариант | Когда использовать |
|---|---|
Каноническая | 36 символов, нижний регистр с дефисами — универсальный вариант по умолчанию. |
Без дефисов | 32 символа; так значение хранится внутри большинства баз и так его печатают логи. |
Скобки | 38 символов; спецификаторы формата .NET <code>B</code> и <code>P</code>. |
Base64url | 22 символа, безопасно для URL, без выравнивания — самая компактная форма без потерь. |
Примеры кода
JavaScript
const hex = '550e8400e29b41d4a716446655440000';
const H = (s) => `${s.slice(0,8)}-${s.slice(8,12)}-${s.slice(12,16)}-${s.slice(16,20)}-${s.slice(20)}`;
H(hex); // 550e8400-e29b-41d4-a716-446655440000
H(hex).toUpperCase(); // 550E8400-E29B-41D4-A716-446655440000
Buffer.from(hex, 'hex').toString('base64url'); // 22 символа
Python
import uuid, base64
u = uuid.UUID('550e8400-e29b-41d4-a716-446655440000')
str(u) # 550e8400-e29b-41d4-a716-446655440000
str(u).upper() # 550E8400-E29B-41D4-A716-446655440000
u.hex # 550e8400e29b41d4a716446655440000
base64.urlsafe_b64encode(u.bytes).rstrip(b'=').decode() # UQ6EAO4pQdSnFkZmVUQA
PostgreSQL
SELECT '550e8400-e29b-41d4-a716-446655440000'::uuid; -- для приведения нужны дефисы
SELECT replace('550e8400-e29b-41d4-a716-446655440000','-','')::uuid; -- так тоже работает
SELECT uuid_extract_version('550e8400-e29b-41d4-a716-446655440000');
Частые вопросы
Какой формат UUID канонический?
Нижний регистр в пяти группах — 8, 4, 4, 4 и 12 символов через дефис — всего 36 символов. Именно так записаны все примеры в RFC 9562, и именно этот вид стоит хранить, если ничто не требует иного.
Как убрать дефисы из списка UUID?
Вставьте список и выберите 32 hex-символа без дефисов. Преобразование обратимо: возврат дефисов не меняет значение, только написание.
Base64url — это действительно тот же UUID?
Да. Это те же 16 байт в другом алфавите: 22 символа вместо 36. Если декодировать обратно, получится идентичный UUID — поэтому такая форма безопасна в URL и cookie.