~h
is added to indicate this encoding.
Principle
For example, the following uml text description:
@startuml
Alice -> Bob: Authentication Request
Bob --> Alice: Authentication Response
@enduml
is encoded as:
Syp9J4vLqBLJSCfFib9mB2t9ICqhoKnEBCdCprC8IYqiJIqkuGBAAUW2rO0LOr5LN92VLvpA1G00
To achieve such encoding, the text diagram is:
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/
For PlantUML, the mapping array for values 0-63 is:
0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_
Compression comparison The following diagram:
🎉 Copied!
|
|
is compressed to 428-char string length using Deflate
-encodeurl
or -decodeurl
in the command line flags to encode or decode the text.
Implementations of the encoder in various languages:
@startuml
Alice->Bob : I am using hex
@enduml
will be turned into:
407374617274756d6c0a416c6963652d3e426f62203a204920616d207573696e67206865780a40656e64756d6c
To indicate the use of HEX format, you must add
~h
at the start of the data sent to PlantUML server.
http://www.plantuml.com/plantuml/uml/~h4073...
Since there is no compression here, the URL will become very long as the diagram grows.