UUID - это 128-битное двоичное число, в конце концов. Если вы представляете это как 16 незакодированных байтов, нет способа избежать «некрасивых символов». Что вы, вероятно, хотите сделать, это декодировать его из шестнадцатеричного кода, а затем кодировать его, используя base64 . Обратите внимание, что в кодировке base64 используются символы + / =, а также A-Za-z0-9, вам нужно выполнить небольшую постобработку (я предлагаю s/+/-/g; s/\//_/g; s/==$//
- UUID с base64ed всегда заканчивается двумя знаками равенства)