PlantUML defines a standardized way to encode diagram text description to a simple string of characters that contains only digits, letters, underscore and minus character.
The goal of such an encoding is to facilitate communication of diagrams through URL (see server).
This encoding includes compression to keep encoded strings as short as possible.
The encoded metadata is stored in the generated PNG, so the diagram source can be extracted from the diagram itself! (see server).
Reencoded in ASCII using a transformation close to base64
Why not use Base64?
The main reason is historic: this format was not created to be public at first. Now, it's too late to change it. However, the only difference is in character order.
Where in base64 the mapping array for values 0-63 is:
To denotate the use of HEX format, you must add ~h at the start of the data sent to PlantUML server.
Since there is no compression here, the URL will become very long when the diagram will grow up.