<div dir="ltr"><div class="gmail_default" style="font-family:trebuchet ms,sans-serif">Hello all.<br><br></div><div class="gmail_default" style="font-family:trebuchet ms,sans-serif">I need a couple of base36 (<a href="https://en.wikipedia.org/wiki/Base_36">https://en.wikipedia.org/wiki/Base_36</a>) encoding/decoding functions with the following or similar signatures:<br><br></div><div class="gmail_default" style="font-family:trebuchet ms,sans-serif">function Base36Encode(Buffer: TBytes): string; overload;<br>function Base36Encode(const Buffer; BufSize: Integer): string; overload;<br>function Base36Decode(const S: string): TBytes;<br><br></div><div class="gmail_default" style="font-family:trebuchet ms,sans-serif">My aim is to encode/decode GUIDs and other binary data in a manner that can be stored in a database CHAR (or VARCHAR) column with the least possible size but in such a way that value comparisons do not need to be case-sensitive. Thus far I've been using Base64 encoding for which I have found efficient routines, but base64 requires case-sensitive collation/comparisons and I would like to be able to avoid that.<br><br></div><div class="gmail_default" style="font-family:trebuchet ms,sans-serif">Anybody knows where I could find such functions or care to share some? So far the only ones I've found encode/decode only a single 32-bit integer or a base10 string representation of a number and I would want to be able to encode/decode a binary buffer of arbitrary size.<br><br></div><div class="gmail_default" style="font-family:trebuchet ms,sans-serif">Thank you in advance<br><br></div><div class="gmail_default" style="font-family:trebuchet ms,sans-serif">-- Constantine<br></div></div>