> zeromq | kildekodesikkert | effektivt <
// Z85 – ZeroMQs Base85-variant, trygg å bruke direkte i kildekode og JSON
Trygg for kildekode
Unngår anførselstegn, backslash og blanktegn, slik at strenger kan brukes direkte i C/C++‑kode, JSON og konfigurasjonsfiler uten ekstra escape-sekvenser.
Høy tetthet
Koder 4 byte til 5 tegn, noe som gir omtrent 25 % overhead – mer effektivt enn Base64 (~33 %) når binærdata skal representeres som tekst.
ZeroMQ-standard
Offisielt Base85‑format brukt av ZeroMQ for å frakte binærdata i tekstbaserte protokoller.
>> teknisk informasjon
Hvordan Z85 fungerer:
Z85 koder blokker på 4 byte til 5 tegn ved hjelp av 85 skrivbare ASCII‑tegn. Alfabetet er valgt slik at ingen av tegnene vanligvis trenger escape i C/C++‑strenger eller JSON, noe som forenkler innbaking av binærdata i kode og konfigurasjoner.
Eksempel:
"Hello" → nm=QNz.92
Hvorfor bruke Z85:
- >For å bygge inn binærdata direkte i kildekode eller konfigurasjonsfiler
- >For å redusere behovet for escape-sekvenser i JSON, YAML og XML
- >For å få en mer kompakt tekstlig representasjon enn Base64
- >For å bruke det anbefalte kodingsformatet for ZeroMQ‑baserte systemer
- >For å standardisere presentasjonen av binære payloads i tekstbaserte API‑er
>> ofte stilte spørsmål
Hva er Z85-koding?
Z85 er en Base85‑kodingsvariant definert av ZeroMQ. Den bruker 85 skrivbare ASCII‑tegn som er valgt for å være trygge å bruke direkte i kildekode og JSON uten ekstra escaping.
Hvordan skiller Z85 seg fra andre Base85‑implementasjoner?
I motsetning til enkelte Base85‑varianter unngår Z85 tegn som anførselstegn, backslash og mellomrom, som ofte krever escape i de fleste programmeringsspråk.
Når bør jeg bruke Z85?
Når du trenger å plassere binærdata i kodesnutter, konfigurasjon eller tekstprotokoller (spesielt med ZeroMQ), og vil gjøre det uten å fylle koden med escape‑sekvenser.
Hvilke lengdebegrensninger har Z85?
Den opprinnelige binærstrengen må ha en lengde som er et multiplum av 4 byte. Enkoder kan legge til padding, mens dekoderen forutsetter dette for å gjenskape den opprinnelige bytestreamen.